xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

以前寫(xiě)的網(wǎng)絡(luò)編程,壓縮包內(nèi)包括TCP客戶端和TCP服務(wù)器,用到線程,編譯時(shí)記得加上-lpthread

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?


void?*recv_handler(void?*arg);
int?main(int?argc?char?**argv)
{
if(argc? {
printf(“using:app?ip?port\n“);
return?-1;
}

//1.創(chuàng)建套接字
int?sockfd?=?socket(AF_INET?SOCK_STREAM?0);
if(sockfd? {
perror(“socket?fail“);
return?-1;
}


//2.連接服務(wù)器
struct?sockaddr_in?servaddr;
bzero(&servaddr?sizeof(servaddr));
servaddr.sin_family?=?AF_INET;
servaddr.sin_port?=?htons(atoi(argv[2]));
servaddr.sin_addr.s_addr?=?inet_addr(argv[1]);

int?ret?=?connect(sockfd?(struct?sockaddr*)&servaddr?sizeof(servaddr));
if(ret? {
perror(“connect?fail:“);
close(sockfd);
return?-1;
}




//啟動(dòng)線程用來(lái)專(zhuān)門(mén)讀取數(shù)據(jù)
pthread_t?id?=0;
ret?=?pthread_create(&id?NULL?recv_handler?(void?*)&sockfd);
pthread_detach(id);

int?selfid?=?0;
printf(“selfid:“);scanf(“%d“?&selfid);

while(1)
{
int?toid?=?0;
char?data[1024]={0};
printf(“toid:“);scanf(“%d“?&toid);
printf(“data:“);scanf(“%s“?data);
char?sendbuf[1024]={0};
sprintf(sendbuf?“id:%dto:%ddata:%s“?selfid?toid?data);
write(sockfd?sendbuf?strlen(sendbuf)+1);
}
close(sockfd);
return?0;
}
void?*recv_handler(void?*arg)
{
int?sockfd=?*((int?*)arg);
//讀取客戶端數(shù)據(jù)
char?recvbuf[1024]={0};

while(1)
{
int?ret?=?read(sockfd?recvbuf?1024);//阻塞
if(ret?<=?0)
{
//客戶端掉線
break;
}
printf(“recvbuf?=?%s\n“?recvbuf);
memset(recvbuf?0?sizeof(recvbuf));
}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????1546??2018-01-09?10:16??tcpclient.c
?????文件????????2856??2018-01-09?11:08??tcp_tran_server.c

評(píng)論

共有 條評(píng)論