socket套接字server

//struct sockaddr_in addrs;

struct  sockaddr_in  
{  
    short int sin_family;     //2         地址族
    unsigned  short int sin_port;     //2     端口号
    struct in_addr sin_addr;     //4     ipv地址
    unsigned char sin_zero[8];     //8
}; 
 
struct sockaddr 
{  
        sa_family_t sin_family;        //地址族
       char sa_data[14];               
}; 

TCP的参数定义一般为:
s_addr.sin_family = AF_INET;      //互联网协议
s_addr.sin_port   = htons(atoi(argv[2]));    //端口号协议  htons()作用是将端口号由主机字节序转换为网络字节序的整数值
inet_aton("127.0.0.1", &s_addr.sin_addr);    //IP地址   net_addr()作用是将一个IP字符串转化为一个网络字节序的整数值,用于sockaddr_in.sin_addr.s_addr
s_addr.sin_addr= inet_addr(argv[1]);            //iner_addr(ip)->字符串IP地址转整型IP地址(网络字节序)
  

1.socket套接字创建通信 : sock_fd = socket(AF_INET, SOCK_STREAM, 0);  //(互联网协议族,通信类型,通信协议【写0默认,根据前面两个参数来确定】)

2.bind地址准备 :bind(sockfd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr_in))

3.地址转换:   字符串->地址 (inet_aton(addrs.sin_addr))
                        地址->字符串 (inet_ntoa(addrs.sin_addr))

4.端口号协议:addrs.sin_port = htons(端口号)

5.监听设置:listen(sockfd,监听数量)

6.连接设置:Client_fd = accept(clien_fd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr_in))

7.读数据:n_read = read(clien_fd,readbuf,sizeof(readbuf))    //char readBuf[128]

8.写数据:write(clien_fd,msg,strlen(msg))        //char msg[128] = {0}
     sprintf(msg,"welcom NO.%d client\n",mark);
 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值