资源描述:
《linux socket编程入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、intsocket(intdomain,inttype,intprotocol);intbind(intsockfd,structsockaddr*my_addr,intaddrlen);intconnect(intsockfd,structsockaddr*serv_addr,intaddrlen);intlisten(intsockfd,intbacklog);intaccept(intsockfd,void*addr,int*addrlen);intsend(intsockfd,constvoid*msg,intlen,intflags);intrecv(int
2、sockfd,void*buf,intlen,unsignedintflags);close(sockfd);intshutdown(intsockfd,inthow);intselect(intnumfds,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,structtimeval*timeout);structsockaddr{unsignedshortsa_family;/*地址族,AF_xxx*/charsa_data[14];/*14字节的协议地址*/};structsockaddr_in{shortintsi
3、n_family;/*地址族*/unsignedshortintsin_port;/*端口号*/structin_addrsin_addr;/*IP地址*/unsignedcharsin_zero[8];/*填充0以保持与structsockaddr同样大小*/};structtimeval{inttv_sec;/*seconds*/inttv_usec;/*microseconds*/};typedefstruct{/*XPG4.2requiresthismembername.Otherwiseavoidthenamefromtheglobalnamespace.*
4、/#ifdef__USE_XOPEN__fd_maskfds_bits[__FD_SETSIZE/__NFDBITS];#define__FDS_BITS(set)((set)->fds_bits)#else__fd_mask__fds_bits[__FD_SETSIZE/__NFDBITS];#define__FDS_BITS(set)((set)->__fds_bits)#endif}fd_set;一个聊天程序服务器代码#include#include#include#include
5、#include#include#include#include#include#include#defineMAXDATASIZE256#defineSERVPORT4444/*服务器监听端口号*/#defineBACKLOG1/*最大同时连接请求数*/#defineSTDIN0/*标准输入文件描述符*/intmain(void){FILE*fp;/*定义文件类型指针fp*/intsockfd,client_fd;/*监听soc
6、ket.sock_fd,数据传输socket.new_fd*/intsin_size;structsockaddr_inmy_addr,remote_addr;/*本机地址信息,客户地址信息*/charbuf[256];/*用于聊天的缓冲区*/charbuff[256];/*用于输入用户名的缓冲区*/charsend_str[256];/*最多发出的字符不能超过256*/intrecvbytes;fd_setrfd_set,wfd_set,efd_set;/*被select()监视的读、写、异常处理的文件描述符集合*/structtimevaltimeout;/*本次
7、select的超时结束时间*/intret;/*与client连接的结果*/if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){/*错误检测*/perror("socket");exit(1);}/*端填充sockaddr结构*/bzero(&my_addr,sizeof(structsockaddr_in));my_addr.sin_family=AF_INET;/*地址族*/my_addr.sin_port=htons(SERVPORT);/*端口号为4444*/inet_aton("127.0.0.1"