发表时间:2022-03-25来源:网络
前言
在上一篇《网络编程-从TCP连接的建立说起》中简单介绍了TCP连接的建立,本文暂时先抛开TCP更加详细的介绍,来看看如何实现一个简单的网络程序。
一个简单的echo程序
本文以及后续文章都将会围绕该程序进行介绍。程序大体流程如下:
首先启动服务端,客户端通过TCP的三次握手与服务端建立连接;而后,客户端发送一段字符串,服务端收到字符串后,原封不动的发回给客户端。
我们先将代码呈现,后面再进行更加详细的解释。
客户端代码client.c如下:
//client.c//来源:公众号【编程珠玑】网站:https://www.yanbinghu.com#include#include#include#include#include #include#include#define MAXLINE 128int main(int argc, char **argv){ int sockfd; //连接描述符 struct sockaddr_in servaddr;//socket结构信息 char sendMsg[MAXLINE] = {0}; char recvMsg[MAXLINE] = {0}; //检查参数数量 if (argc < 2) { printf("usage: ./client ip port"); return -1; } //初始化结构体 bzero(&servaddr, sizeof(servaddr)); //指定协议族 servaddr.sin_family = AF_INET; //第一个参数为ip地址,需要把ip地址转换为sin_addr类型 inet_pton(AF_INET, argv[1], &servaddr.sin_addr); //第二个参数为端口号 servaddr.sin_port = htons(atoi(argv[2])); sockfd = socket(AF_INET, SOCK_STREAM, 0); if(-1 == sockfd) { perror("socket error"); return -1; } //连接服务器,如果非0,则连接失败 if(0 != connect(sockfd, (const struct sockaddr *)&servaddr, sizeof(servaddr))) { perror("connect failed"); return -1; } //从控制台读取消息 if(NULL !=fgets(sendMsg,MAXLINE,stdin)) { write(sockfd, sendMsg, strlen(sendMsg)); } if(0 != read(sockfd, recvMsg, MAXLINE)) { printf("recv msg:%s
计支宝app下载v3.1.29 安卓版
142.27MB |商务办公
小小优酷最新版下载v5.4.6 安卓官方版
68.11MB |影音播放
艺图语app下载v3.3.4 安卓免费版
34.33MB |系统工具
爱鸽者手机版下载v3.2.9 安卓版
243.57MB |商务办公
一品威客网接单app(一品众包)下载v2.7.1 安卓最新版
55.01MB |商务办公
诸葛找房网官方版下载v4.8.1.1 安卓最新版
66.6MB |生活服务
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游末日餐厅安卓版下载v1.35安卓版
其它手游葫芦侠十楼免费破解版下载v4.4.0.6安卓版
其它手游葫芦侠8楼最新破解版下载v4.4.0.6安卓版
其它手游