linux下UDP协议实现两台计算机通信

panlitao2013 2013-08-28 10:42:47
我的代码,只能在一台计算机上运行两个终端通信,两台计算机不行,求指导
...全文
438 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛爬珠峰 2014-03-04
  • 打赏
  • 举报
回复
#define REMOTEIP "127.0.1.2" 换成局域网IP
范冬 2014-03-04
  • 打赏
  • 举报
回复
如何实现在两个计算机上通信呢?
范冬 2014-03-04
  • 打赏
  • 举报
回复
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<netinet/in.h> #include<arpa/inet.h> #include<unistd.h> #include<fcntl.h> #include<sys/stat.h> #include<sys/types.h> #include<sys/socket.h> #define REMOTEPORT 4567 #define REMOTEIP "127.0.1.2" int main(int argc,char *argv[]) { int s,len; struct sockaddr_in addr; char msg[256]; int i=0; int addr_len; if((s=socket(AF_INET,SOCK_DGRAM,0))<0) { perror("connect:"); exit(1); } else { printf("socker created\n"); printf("socket id :%d\n",s); printf("remote port :%d\n",REMOTEPORT); printf("remote ip: %s\n",REMOTEIP); } len=sizeof(struct sockaddr_in); addr_len=sizeof(addr); bzero(&addr,sizeof(addr)); addr.sin_family=AF_INET; addr.sin_port=htons(REMOTEPORT); addr.sin_addr.s_addr=inet_addr(REMOTEIP); while(1) { bzero(msg,sizeof(msg)); len=read(STDIN_FILENO,msg,sizeof(msg)); sendto(s,msg,len,0,&addr,sizeof(addr)); printf("\n Input message:%s\n",msg); len=recvfrom(s,msg,sizeof(msg),0,&addr,&addr_len); printf("%d:",i); i++; printf("received message:%s\n",msg); } return 0; }
imGala 2013-08-29
  • 打赏
  • 举报
回复
贴代码,无码无真相
追_逐 2013-08-29
  • 打赏
  • 举报
回复
UDP 通信的代码应该不多,你把代码贴出来看看吧!
  • 打赏
  • 举报
回复
只需要把udp发送的IP地址和端口号填写对应的值。 你原来程序是本机,可能都填的默认的127.0.0.1,改成对端计算机IP地址估计就好了。
computer_infosec08 2013-08-28
  • 打赏
  • 举报
回复
局域网是OK的没?端口号神马的小细节 再检查检查 应该没问题的啊。

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧