?? tcpclient.c
字號:
#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "tcpclient.h"int main(int argc, char *argv[]){ int cstcp,csudp,ccudp; int server_port=8000; //c-s tcp port int CC_port=5000; //c-c udp port struct hostent *hostPtr = NULL; struct sockaddr_in adr_srvr = { 0 }; struct sockaddr_in CC_link = { 0 }; char hostname[80] = ""; char buf[bufsize+1]=""; char *msg; char *S_addr = NULL; int recvn; int childPid; if (2 != argc){ fprintf(stderr, "Usage: %s <serverAddress> \n", argv[0]); exit(1); } S_addr = argv[1]; cstcp = tcpSocket(); /* *if((cstcp = socket(AF_INET,SOCK_STREAM,0)) == -1 ){ *perror("socket;"); *} */ CreateSockAddr2(S_addr,&adr_srvr,server_port); //C-S //(void) memset(&adr_srvr, 0, sizeof(adr_srvr)); /*adr_srvr.sin_addr.s_addr = inet_addr(S_addr);//htonl(INADDR_ANY); adr_srvr.sin_family = AF_INET; adr_srvr.sin_port = htons(port);*/ Connect(cstcp,(struct sockaddr*) &adr_srvr); msg="Client is starting\n"; Send(cstcp,msg); Recv(cstcp,buf); printf("%s",buf); printf("Connect to server successfully,please input your nickname\n"); Fgets(buf); Send(cstcp,buf); //send user name bzero(buf,bufsize); Recv(cstcp,buf); while(strncmp(buf,":x",2)==0) { printf("%s","The name has been used,please change your name:\n"); Fgets(buf); Send(cstcp,buf); //send user name bzero(buf,bufsize); Recv(cstcp,buf); } printf("%s",buf); Send(cstcp,":l"); //send com to get userlist form server printf("OnLine Users:\n"); bzero(buf,bufsize); Recv(cstcp,buf); //get userlist from server printf("%s",buf); childPid = fork(); switch (childPid){ case -1: // ERROR perror("fork()"); exit(1); case 0: // child process while(1){ bzero(buf,bufsize); if(Recv(cstcp,buf)>0) if(strncmp(buf,":q",2)==0) exit(0); //get userlist from server printf("%s",buf); } default : while(1){ bzero(buf,bufsize); Fgets(buf); Send(cstcp,buf); if(strncmp(buf,":q",2)==0) exit(0); } }return EXIT_SUCCESS;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -