?? client.c
字號:
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#define SERVER_PORT 20000 // define the defualt connect port id
#define CLIENT_PORT ((20001+rand())%65536) // define the defualt client port as a random port
#define BUFFER_SIZE 255
#define REUQEST_MESSAGE "welcome to connect the server.\n"
void usage(char *name)
{
printf("usage: %s IpAddr\n",name);
}
int main(int argc, char **argv)
{
char sendata[BUFFER_SIZE];
char receive[BUFFER_SIZE];
char inputdata;
int servfd,clifd,length = 0;
struct sockaddr_in servaddr,cliaddr;
socklen_t socklen = sizeof(servaddr);
char buf[BUFFER_SIZE];
if (argc < 2)
{
usage(argv[0]);
exit(1);
}
if ((clifd = socket(AF_INET,SOCK_STREAM,0)) < 0)
{
printf("create socket error!\n");
exit(1);
}
srand(time(NULL));//initialize random generator
bzero(&cliaddr,sizeof(cliaddr));
cliaddr.sin_family = AF_INET;
cliaddr.sin_port = htons(CLIENT_PORT);
cliaddr.sin_addr.s_addr = htons(INADDR_ANY);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family = AF_INET;
inet_aton(argv[1],&servaddr.sin_addr);
servaddr.sin_port = htons(SERVER_PORT);
//servaddr.sin_addr.s_addr = htons(INADDR_ANY);
if (bind(clifd,(struct sockaddr*)&cliaddr,sizeof(cliaddr))<0)
{
printf("bind to port %d failure!\n",CLIENT_PORT);
exit(1);
}
if (connect(clifd,(struct sockaddr*)&servaddr, socklen) < 0)
{
printf("can't connect to %s!\n",argv[1]);
exit(1);
}
length = recv(clifd,buf,BUFFER_SIZE,0);
if (length < 0)
{
printf("error comes when recieve data from server %s!",argv[1]);
exit(1);
}
printf("from server %s :\n\t%s ",argv[1],buf);
while(1)
{/*
length = recv(clifd,receive,BUFFER_SIZE,0);
if (length = 0)
{
printf("No data!!\n");
}
else
{
puts(receive);
}
*/
printf("please input send data:");
gets(sendata);
printf("\n");
int lengthdata;
int i =0;
lengthdata = strlen(sendata);
send(clifd,sendata,lengthdata+2,0);
printf("write n stop sending data,other go on!!\n");
scanf("%c\n",&inputdata);
if(inputdata == 'n')
{
close(clifd);
return 0;
}
// char inputdata;
// printf("go on please input y,stop client pleaseinput n:");
// scanf("%c",&inputdata);
/*
while(i<3)
{
if ((inputdata != 'y')& (inputdata != 'n'))
{
printf("scanf is wrong !please input again!!\n");
scanf("%c",&inputdata);
i= i+1;
}
}
if (inputdata =='n'|i>=3)
{
close(clifd);
return 0;
}
if(inputdata == 'y')continue;
*/
}
//
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -