首页 > 代码库 > TCP,UDP

TCP,UDP

地址转换:aton\atoa,ascii,network,32bit与ascii转换大端小端转换字节充转换:htons\htonl\htohs\ntohl.网络序与主机序转换。主机名转换为IP地址:struct hostent *gethostbyname(const char *hostname)struct hostent{    char *h_name;    char *h_aliases;    int h_addrtype;    int h_length;    char **h_addr_list;}sock编程常用函数:socket创建一个socketbind绑定IP地址的端口号到socketconnect连接服务器listen设定服务器允许的最大连接数accept等待客户端socket连接请求send发送数据recv接收数据基于TCP服务器:a.使用socket函数创建socketb.使用bind函数绑定IP地址、端口信息到socket上c.使用listen设置允许的最大连接数d.使用accept等待客户端连接请求,阻塞等待。e.使用send/recv或者read/write收发数据f.关闭连接基于TCP客户端:a.使用socket创建socketb.设置要连接的服务器的IP地址和端口的属性c.使用connect连接服务器d.使用send/recv或者read/write收发数据e.关闭连接基于UDP服务器:a.使用socket创建一个socketb.使用bind绑定地址、端口信息到socketc.使用recvfrom循环接收数据d.关闭连接基于UDP客户端:a.使用socket创建一个socketb.使用bind绑定地址、端口信息到socketc.设置对方的IP地址、端口等属性e.使用sendto发送数据f.关闭连接并发服务器模型:循环服务器:在同一时刻只能响应一个客户端请求并发服务器:服务器同一时刻可以响应多个客户端请求实现方法:UDP服务器每次从套接字上读取一个客户端的夜请求---处理---然后将结果返回给客户端。socket();bind();while(1){     recvfrom();    process();    sendto();}TCP循环服务器接受一个客户端连接,然后处理,完成这个客户端所有请求后,断开连接:socket();bind();listen();while(1);{    accept();    process();    close();}TCP并发服务器:并发服务器思想是每一个客户机的请求并不是由服务器直接处理,而是由服务器创建子进程来处理:socket();bind();listen();while(1){    accept();    if(fork()==0)    {        process();        close();        exit();    }    close();}

 

TCP,UDP