1 Star 0 Fork 0

YJ-Gao/LinuxCoding

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
TCP_demo_client.cpp 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
YJ-Gao 提交于 3年前 . 单执行流的TCP客户端
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<iostream>
using namespace std;
int main()
{
/*
*1、创建套接字
*2、建立连接
*3、收发消息
* */
int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sockfd < 0)
{
perror("socket");
return 0;
}
//调用connect接口
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(47000);
addr.sin_addr.s_addr = inet_addr("119.91.210.136");
int ret = connect(sockfd, (struct sockaddr*)&addr, sizeof(addr));
if(ret < 0)
{
perror("connect");
return 0;
}
while(1)
{
char buf[1024] = {0};
cout << "Please enter your msg#";
fflush(stdout);
cin >> buf;
int send_size = send(sockfd, buf, strlen(buf), 0);
if(send_size < 0)
{
perror("send");
continue;
}
//接收消息
memset(buf, '\0', sizeof(buf));
int recv_size = recv(sockfd, buf, sizeof(buf) - 1, 0);
if(recv_size < 0)
{
continue;
}
else if(recv_size == 0)
{
//服务端将连接关闭了
printf("server shutdown connect!\n");
break;
}
printf("%s\n",buf);
}
close(sockfd);
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/yj-gao/linux-coding.git
git@gitee.com:yj-gao/linux-coding.git
yj-gao
linux-coding
LinuxCoding
master

搜索帮助