免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2007 | 回复: 2
打印 上一主题 下一主题

关于linux下的网络编程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-18 01:49 |只看该作者 |倒序浏览
最近在学习linux环境下的网络编程 但是对socket还是不甚了解
这是我完成的第一个代码
功能:使用udp报文 能够接受一个字符串
这个是server

遇到问题有下:
1.如果将recvfrom放置在像for  (;中 ,则无法接受任何数据
2.如何知道该如何监听本机的端口
个人理解 作为一台server ,需要知道三个端口 udp源端口 udp目的端口 还有需要在本机上有一个端口用来收udp数据报 在以下代码中如何体现
像各位大牛求教
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<sys/types.h>
  4. #include<netinet/in.h>
  5. #include<sys/wait.h>
  6. #include<sys/socket.h>

  7. int main(){
  8.         int serverPort,clientPort;
  9.         struct sockaddr_in servAddr,clientAddr,unknown,local;
  10.         int serverLen,clientLen;
  11.         int sockfd,recvlen;
  12.         char buff[100];

  13.         sprintf(buff,"hello world");

  14.         sockfd = socket(AF_INET,SOCK_DGRAM,0);
  15.         
  16.         bzero(&servAddr,sizeof(servAddr));

  17.         servAddr.sin_family = AF_INET;
  18.         servAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  19.         servAddr.sin_port = htons(1234);


  20.         bzero(&clientAddr,sizeof(clientAddr));

  21.         clientAddr.sin_family = AF_INET;
  22.         clientAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
  23.         clientAddr.sin_port = htons(1234);
  24.         
  25.         local.sin_family = servAddr.sin_family;
  26.         local.sin_addr.s_addr = servAddr.sin_addr.s_addr;
  27.         local.sin_port = servAddr.sin_port;

  28.         bind(sockfd,&local,sizeof(local));
  29.         while (1){
  30.         recvlen = recvfrom(sockfd,buff,100,0,&unknown,sizeof(unknown));
  31.         buff[recvlen] = 0;
  32.         printf("receive message is %s\n",buff);
  33.         }
  34.         close(sockfd);        

  35.         return 0;
  36. }
复制代码

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
2 [报告]
发表于 2011-11-18 09:07 |只看该作者
使用getsockname可以看本機使用的那個端口與ip

论坛徽章:
0
3 [报告]
发表于 2011-11-18 15:36 |只看该作者


你怎麽又跑到這裏展示你的智無敵來了?


在另一個版塊我已經很好的回答了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP