/* 利用socket的TCP client
* 此程序会连线TCP server,并将键盘输入的字符串传送给server。
* TCP server范例请参考listen()。
*/
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define PORT 1234
#define SERVER_IP “127.0.0.1”
main()
{
int s;
struct sockaddr_in addr;
char buffer[256];
if ((s = socket(AF_INET,SOCK_STREAM,0))<0)
{
perror(“socket”);
exit(1);
}
/* 填写sockaddr_in结构*/
bzero(&addr,sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER_IP); /* 尝试连线*/
if (connect(s,&addr,sizeof(addr))<0)
{
perror(“connect”);
exit(1);
}
/* 接收由server端传来的信息*/
recv(s,buffer,sizeof(buffer),0);
printf(“%s/n”,buffer);
while(1)
{
bzero(buffer, sizeof(buffer));
/* 从标准输入设备取得字符串*/
read(STDIN_FILENO, buffer, sizeof(buffer));
/* 将字符串传给server端*/
if (send(s, buffer, sizeof(buffer), 0)<0)
{
perror(“send”);
exit(1);
}
}
}
|