当前位置: 技术问答>linux和unix
Linux新手小程序 小问题求解决
来源: 互联网 发布时间:2017-05-20
本文导语: 写了个最简单的 Linux socket 程序客户端 服务端程序 在两个虚拟机之间无法联通 确定两虚拟机之间可以ping通 同一网段 如果在同一个虚拟机中运行就可以连通 客户端主要代码 分虽然不多但希望指点一下 ...
写了个最简单的 Linux socket 程序客户端 服务端程序 在两个虚拟机之间无法联通 确定两虚拟机之间可以ping通 同一网段 如果在同一个虚拟机中运行就可以连通 客户端主要代码 分虽然不多但希望指点一下
服务端主要代码
int sockser_fd;
char sendbuf[BUFMAX], recvbuf[BUFMAX];
struct sockaddr_in r_addr;
sockser_fd = socket(AF_INET, SOCK_STREAM, 0);//创建socket
r_addr.sin_family = AF_INET;//协议
r_addr.sin_port = htons(6000);//端口
inet_aton("192.168.253.134", (struct in_addr*)&r_addr.sin_addr.s_addr);//ip
int a = connect(sockser_fd, (struct sockaddr*)&r_addr, sizeof(r_addr));//连接服务端 反回错误代码113 没有到主机的路由
服务端主要代码
int sockser_fd, new_fd;
char sendbuf[BUFMAX], recvbuf[BUFMAX];
struct sockaddr_in my_addr, r_addr;
sockser_fd = socket(AF_INET, SOCK_STREAM, 0 );//创建socket
memset(&my_addr, 0, sizeof(my_addr));
my_addr.sin_family = AF_INET;//协议
my_addr.sin_port = htons(6000);//端口
my_addr.sin_addr.s_addr = inet_addr("192.168.253.134");//ip
bind(sockser_fd, (struct sockaddr*)&my_addr, sizeof(struct sockaddr));//绑定ip和端口
listen(sockser_fd, 5);//
int len = sizeof(struct sockaddr);
new_fd = accept(sockser_fd, (struct sockaddr*)&r_addr, &len);//阻塞等待客户端连接
|
程序代码看起来没有问题。你用wireshark抓包抓看看。
|
两台虚拟机 telnet ip port 都能通么