TCP编程函数和步骤.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP编程的服务器端一般步骤是创建一个socket,用函数socket();设置socket属性,用函数setsockopt(); * 可选绑定IP地址、端口等信息到socket上,用函数bind();开启监听,用函数listen();接收客户端上来的连接,用函数accept();收发数据,用函数send()和recv(),者read()和write();关闭网络连接;关闭监听;TCP编程的客户端一般步骤是:创建一个socket,用函数socket();设置socket属性,用函数setsockopt();* 可选绑定IP地址、端口等信息到socket上,用函数bind();* 可选设置要连接的对方的IP地址和端口等属性;连接服务器,用函数connect();收发数据,用函数send()和recv(),或者read()和write();关闭网络连接;UDP编程的服务器端一般步骤是:创建一个socket,用函数socket();设置socket属性,用函数setsockopt();* 可选绑定IP地址、端口等信息到socket上,用函数bind()循环接收数据,用函数recvfrom();关闭网络连接;UDP编程的客户端一般步骤是:创建一个socket,用函数socket();设置socket属性,用函数setsockopt();* 可选绑定IP地址、端口等信息到socket上,用函数bind();* 可选设置对方的IP地址和端口等属性;发送数据,用函数sendto();关闭网络连接; telnet telnet是一个用来远程控制的程序,但是我们完全可以用这个程序来调试我们的服务端程序的. 比如我们的服务器程序在监听8888端口,我们可以用telnet localhost 8888来查看服务端的状况 数据结构 1、地址结构 struct sockaddr_in { short int sin_family; /* 地址族 一般为AF-INET */ unsigned short int sin_port; /* 端口号 */ struct in_addr sin_addr; /* IP地址 */ unsigned char sin_zero[8]; /* 填充0 以保持与struct sockaddr同样大小 使用memset()或bzero()来填充*/ }; struct sockaddr {   ??????unsigned short sa_family; /* 地址族, AF_xxx */  ??????? char sa_data[14]; /* 14 字节的协议地址 */ ???????? ?}; 2、DNS结构 struct hostent { char *h_name; /* 主机的官方域名 */ char **h_aliases; /* 一个以NULL结尾的主机别名数组 */ int h_addrtype; /* 返回的地址类型,在Internet环境下为AF-INET */ int h_length; /*地址的字节长度 */ char **h_addr_list; /* 一个以0结尾的数组,包含该主机的所有地址*/ };操作函数socket: 创建socket 描述符 int socket(int domain, int type, int protocol); domain=AF_INET,socket的类型,type=SOCK_STREAM 或SOCK_DGRAM,分别表示TCP连接和UDP连接;protocol=0。返回一个整型socket描述符。 2.bind: 将socket描述符与你本机上的一个端口相关联(仅用于服务器) int bind(int sockfd,struct sockaddr *my_addr, int addrlen); Sockfd是一个socket描述符 my_addr是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针; addrlen=sizeof(struct sockaddr)。 返回:成功=0;失败=-1,errno=错误号。 可以用下面的赋值自动获得本机IP地址和随机获取一个没有被占用的端口号: my_addr.sin_port = 0; /* 系统随机选择一个未被使用的端口号 */ my_addr.sin_addr.s_addr = INADDR_ANY; /* 填入本机IP地址 */Connect: 与远端服务器建立一个TCP连接 (用于客户端) int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); Sockf

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档