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

資源簡介

linux c tcp socket 多線程 簡單聊天室 ,服務(wù)器端負(fù)責(zé)轉(zhuǎn)發(fā),代碼很簡陋有待改進(jìn)

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#define?BUFF_SIZE?1024
/*
* ./tcpclienttest?[hostname]?[port]//三個(gè)參數(shù)程序名算一個(gè)參數(shù)[]表示可以輸也可不輸
*/
int?main(int?argcchar?*argv[])
{
int?sockfd;
int?rtncount=0;
struct?sockaddr_in?servip;
char?*hostip;
unsigned?short?port;
char?buff[BUFF_SIZE];
char?name[20];
char?message[BUFF_SIZE];
int?recvlen=0sendlen;
int?msglen=0;//message長度
struct?hostent?*host;

fd_set?rdfd;
int?maxfd;
struct?timeval?tv;

if(argc<2)
{
hostip=“l(fā)ocalhost“;//服務(wù)器地址,不輸如服務(wù)器ip的話默認(rèn)本機(jī)
port=8080;
}
else?if(argc==2)
{
port=8080;
}
else
{
hostip=argv[1];
port=atoi(argv[2]);//atoi()字符串轉(zhuǎn)int
}
printf(“will?connect?%s:%d\n“hostipport);

if((host=gethostbyname(hostip))==NULL)
{
perror(“gethostbyname“);
exit(1);
}
sockfd=socket(AF_INETSOCK_STREAM0);
if(sockfd==-1)
{
perror(“socket\n“);
exit(1);
}

bzero(&servipsizeof(struct?sockaddr_in));
servip.sin_family=AF_INET;
servip.sin_port=htons(port);
servip.sin_addr=*((struct?in_addr?*)host->h_addr);
//#define?h_addr?h_addr_list[0]char**h_addr_list#include


rtn=connect(sockfd(struct?sockaddr?*)&servipsizeof(servip));
if(rtn==-1)
{
printf(“connect?to?%s:%d?fail.\n“(char?*)inet_ntoa(servip.sin_addr)
ntohs(servip.sin_port));
perror(“connect\n“);
close(sockfd);
exit(1);
}
printf(“connect?to?%s:%d?success.\n“(char?*)inet_ntoa(servip.sin_addr)
ntohs(servip.sin_port));
strcpy(name“client-1“);
sendlen=send(sockfdname200);
if(sendlen==-1)
{
perror(“send?name\n“);
close(sockfd);
exit(1);
}

while(1)
{
bzero(buffBUFF_SIZE); //清空發(fā)送緩沖區(qū)
bzero(messageBUFF_SIZE);//清空接收緩沖區(qū)
//gets(buff);

FD_ZERO(&rdfd);
FD_SET(0&rdfd);
FD_SET(sockfd&rdfd);

if(sockfd>maxfd)
{
maxfd=sockfd;
}

tv.tv_sec=0;
tv.tv_usec=0;

rtn=select(maxfd+1&rdfdNULLNULLNULL);
//printf(“select?return:?%d\n“rtn);

if(FD_ISSET(0&rdfd))
{
recvlen=read(0buffBUFF_SIZE);//從鍵盤輸入字符?存到?buff
if(recvlen>0)
{
sendlen=send(sockfdbuffBUFF_SIZE0);
if(sendlen==-1)
{
perror(“send?message\n“);
break;
}
}
}

recvlen=recv(sockfdmessageBUFF_SIZE0);
if(recvlen==-1)
{
perror(“recv?message\n“);
break;
}

printf(“%s\n“message);
}
close(sockfd);
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

????.......??????2520??2012-01-02?00:39??簡單聊天室\clientroom.c

????.......??????3683??2012-01-02?00:41??簡單聊天室\serverroom.c

????I..D...?????????0??2012-01-02?00:44??簡單聊天室

-----------?---------??----------?-----??----

?????????????????6203????????????????????3


評論

共有 條評論