socket相关函数的介绍

socket相关函数的介绍

ID:37711719

大小:20.21 KB

页数:7页

时间:2019-05-29

socket相关函数的介绍_第1页
socket相关函数的介绍_第2页
socket相关函数的介绍_第3页
socket相关函数的介绍_第4页
socket相关函数的介绍_第5页
资源描述:

《socket相关函数的介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、recvfrom  recvfrom函数(经socket接收数据):  函数原型:ssize_trecvfrom(intsockfd,void*buf,intlen,unsignedintflags,structsockaddr*from,socket_t*fromlen);  ssize_t相当于int,socket_t相当于int,这里用这个名字为的是提高代码的自说明性。  相关函数recv,recvmsg,send,sendto,socket  函数说明:recv()用来接收远程主机经指定的socket传来的数据,并把数据传到由参数buf指向的内存空间,参数len为可接收

2、数据的最大长度.参数flags一般设0,其他数值定义参考recv().参数from用来指定欲传送的网络地址,结构sockaddr请参考bind()函数.参数fromlen为sockaddr的结构长度.  返回值:成功则返回接收到的字符数,失败返回-1.  错误代码  EBADF参数s非合法的socket处理代码  EFAULT参数中有一指针指向无法存取的内存空间。  ENOTSOCK参数s为一文件描述词,非socket。  EINTR被信号所中断。  EAGAIN此动作会令进程阻断,但参数s的socket为不可阻断。  ENOBUFS系统的缓冲内存不足  ENOMEM核心内存不足 

3、 EINVAL传给系统调用的参数不正确。  范例  /*利用socket的UDPclient  此程序会连线UDPserver,并将键盘输入的字符串传给server。  UDPserver范例请参考sendto()。  */  #include  #include  #include  #include  #include  #include  #include  #definePORT2345  #defineSE

4、RVER_IP“127.0.0.1”  main()  {  ints,len;  structsockaddr_inaddr;  intaddr_len=sizeof(structsockaddr_in);  charbuffer[256];  /*建立socket*/  if((s=socket(AF_INET,SOCK_DGRAM,0))<0){  perror(“socket”);  exit(1);  }  /*填写sockaddr_in*/  bzero(&addr,sizeof(addr));  addr.sin_family=AF_INET;  addr.sin_p

5、ort=htons(PORT);  addr.sin_addr.s_addr=inet_addr(SERVER_IP);  while(1){  bzero(buffer,sizeof(buffer));  /*从标准输入设备取得字符串*/  len=read(STDIN_FILENO,buffer,sizeof(buffer));  /*将字符串传送给server端*/  sendto(s,buffer,len,0,(structsockaddr*)&addr,addr_len);  /*接收server端返回的字符串*/  len=recvfrom(s,buffer,sizeo

6、f(buffer),0,(structsockaddr*)&addr,&addr_len);  printf(“receive:%s”,buffer);  }  }  执行(先执行udpserver再执行udpclient)  hello/*从键盘输入字符串*/receive:hello/*server端返回来的字符串*/2、Socket 错误一览表关键词: Socket    错误    TCP/IP    Windows    VC                                         最近程序出现几次Socket错误,为了便于差错..搜了一些贴在这里

7、..出现网络联机错误Socket error #11001 表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的「个人防火墙」。·出现网络联机错误Socket error #11004 应该是网络联机状态问题,请用户检查网络联机是否正常。·出现网络联机错误Socket error #10060ConnectionTimedOut 表示您与服务器发生联机逾时错误,请检查您的Proxy相关设定,以及ProxyServer是否

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。