流程和服务器类似:
1.使用socket()创建套接字cfd
2.使用bind()为套接字cfd绑定端口号和IP地址(也可以不绑定,系统会自动进行隐式绑定),绑定前应定义一个sockaddr_in结构体,用端口号和IP对其进行初始化
3.使用connect()与服务器建立连接
4.发送请求并接收响应:使用IO函数将请求类容写入套接字cfd写缓冲区,然后从cfd读缓冲区读出结果
5.关闭套接字,程序结束
#include "iostream"
using namespace std;
#define PORT 7777
#define IP "192.168.1.10"
#include "stdio.h"
#include "unistd.h"
#include "sys/socket.h"
#include "arpa/inet.h"
#include "errno.h"
#include "string.h"
#include "ctype.h"
int main()
{
int cfd;
struct sockaddr_in serv_addr; //用与存放需要访问的服务器端口和IP
char buf[1024];
socklen_t serv_addr_len=sizeof(serv_addr);
bzero(&serv_addr,sizeof(serv_addr));
cfd=socket(AF_INET,SOCK_STREAM,0); //创建客服端套接字
if(cfd<0)
{
perror("socket error");
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(PORT); //初始化需要访问的服务器端口
serv_addr.sin_addr.s_addr=inet_addr(IP); //初始化需要访问的服务器IP
int ret=connect(cfd,(struct sockaddr*)&serv_addr,serv_addr_len); //与服务器建立连接
if(ret <0)
{
perror("connect error");
exit(1);
}
while(1)
{
fgets(buf,1024,stdin);
write(cfd,buf,strlen(buf));
int n=read(cfd,buf,1024);
write(buf,1,n);
}
close(cfd);
close(sfd);
return 0;
}
如有不妥之处,欢迎留言指正