- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
select外文文献.doc
c语言编写的tcp socket通信的server端。
可以持续监听myprot指定的端口
打印端口接收到的字符流
头文件因为尖括号被转义,所以用了引号
************************/
#include stdio.h
#include stdlib.h#include errno.h#include string.h
#include sys/types.h
#include netinet/in.h#include sys/socket.h#include sys/wait.h
int main(int argc,char **argv){ int sockfd, new_fd; struct sockaddr_in my_addr; struct sockaddr_in their_addr; unsigned int sin_size,myport,listnum; myport = 9785; //绑定的端口号 listnum = 10; /************************************************* Socket接口:是TCP/IP网络的API,Socket接口定义了许多的函数,可以 在此基础上开发Internet上的TCP/IP网络编程 Create Socket: int socket(int domain, int type, int protoco); Argument Description:domain 指明所有协议族,通常是PF_INET(TCP/IPV4) 当然他也可以支持IPV6,和更多的网络协议,根据 具体的应用来选择 type 分SOCK_STREAM(TCP),SOCK_DGRAM(UDP),SOCK_RAW (允许程序使用底层协议) protolol 通常赋值“0” Return Value: Socket描述符是一个指向内部数据结构的指针,它指向描述符表 入口。调用Socket函数时,socket执行体将建立一个Socket, 实际上建立一个Socket意味着为一个Socket数据结构分配存 储空间。Socket执行体为你管理描述符表。 **************************************************/ if((sockfd = socket(PF_INET,SOCK_STREAM,0)) == -1 ) { perror(socket is error/n;); exit(1); } my_addr.sin_family = PF_INET; //指定协议族
/*************************************************** 计算机数据存储有两种字节优先顺序:高位字节优先和低 位字节优先。Internet上数据以高位字节优先顺序在网络 上传输,所以对于在内部是以低位字节优先方式存储数据 的机器,在Internet上传输数据时就需要进行转换,否则 就会出现数据不一致。 htonl():把32位值从主机字节序转换成网络字节序 htons():把16位值从主机字节序转换成网络字节序 ntohl():把32位值从网络字节序转换成主机字节序 ntohs():把16位值从网络字节序转换成主机字节序 ****************************************************/ my_addr.sin_port = htons(myport); //如果填入0,系统将随机选择一个端口 my_addr.sin_addr.s_addr = INADDR_ANY; //填入本机IP地址 bzero((my_addr.sin_zero),0)
文档评论(0)