Linux网络编程2:简单客户端编写C++

流程和服务器类似:
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;
}


如有不妥之处,欢迎留言指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值