柚子快报邀请码778899分享:tcp/ip TCP练习

http://yzkb.51969.com/

#include

#define PORT 8888 #define IP "192.168.124.18"

int main(int argc, const char *argv[]) {     //创建流式套接字文件     int sfd = socket(AF_INET,SOCK_STREAM,0);     if(sfd < 0)     {         perror("socket");         return -1;     }     printf("socket seccuss sfd = %d  __%d__\n",sfd,__LINE__);          int reuse = 1;     if(setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))<0)     {         perror("setsockopt");         return -1;     }     //AF_INET     struct sockaddr_in sin;     sin.sin_family = AF_INET;     sin.sin_port = htons(PORT);     sin.sin_addr.s_addr = inet_addr(IP);

    //绑定服务器自身的地址信息     if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin)) < 0)     {         perror("bind");         return -1;     }     printf("bind seccuss __%d__\n",__LINE__);     //将套接字设置为被动监听状态     if(listen(sfd,128) < 0)     {         perror("listen");         return -1;     }     printf("listen seccuss __%d__\n",__LINE__);

    struct sockaddr_in cin;     socklen_t addrlen = sizeof(cin);     //获取链接成功的套接字     int newfd = accept(sfd,(struct sockaddr*)&cin,&addrlen);     if(newfd < 0)     {         perror("accept");         return -1;     }     printf("[%s:%d] 客户端连接成功 newfd=%d __%d__\n",\             inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),newfd,__LINE__);     

    char buf[128];     ssize_t res;     while(1)     {         bzero(buf,sizeof(buf));         res = recv(newfd,buf,sizeof(buf),0);         if(res < 0)         {             perror("recv");             return -1;         }         else if(0 == res)         {             printf("[%s:%d] 客户端下线 __%d__\n",\                     inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),__LINE__);             break;         }         printf("[%s:%d] 客户端连接成功 newfd=%d __%d__\n",\             inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),newfd,__LINE__);

    }     close(newfd);     close(sfd);

    return 0; }

柚子快报邀请码778899分享:tcp/ip TCP练习

http://yzkb.51969.com/

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。