基本过程:
客户端在调用socket函数建立了套接字之后,就可通过connect函数与服务器端进行联系。然后,使用read和write函数实现发送和接受数据。
与之对应的服务器端代码:http://blog.csdn.net/smarteryu/article/details/8653979
代码实现:
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#define MAXBUFFSIZE 256
#define PORT 6666
#define HOST_ADDR "127.0.0.1"
int main()
{
int sockfd,n;
char recvbuff[MAXBUFFSIZE];
struct sockaddr_in servaddr;
//创建套接字
sockfd =socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf("Scoket create failed.\n");
return -1;
}
//与服务器进行连接
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(6666);
if(inet_aton(HOST_ADDR,&servaddr.sin_addr)<0)
{
printf("inet_aton error\n");
return -1;
}
//servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
printf("connecting...\n");
if(connect(sockfd ,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)
//connect(函数socket返回的套接字描述符,远程服务器的套接字地址,远程服务器套接字地址长度)
{
printf("Connect server failed.\n");
return -1;
}
while((n=read(sockfd,recvbuff,MAXBUFFSIZE))>0)
{
recvbuff[n]=0;
fputs(recvbuff,stdout);
}
if(n<0)
{
printf("Read failed!\n");
return -2;
}
return 0;
}