当前位置: 首页 > wzjs >正文

b2b网站推广西安网络公司

b2b网站推广,西安网络公司,手机网站菜单栏怎么做,网站建设公司税负率TCP编程 写代码 第一步socket 绑定 先填充 点分十进制转换成32位整数 client 然后就连接成功了就可以读写数据了 client #include "net.h"int main (void) {int fd -1;struct sockaddr_in sin;/* 1. 创建socket fd */if ((fd socket (AF_INET, SOCK_S…

TCP编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写代码

第一步socket

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绑定


先填充
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点分十进制转换成32位整数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

client

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就连接成功了就可以读写数据了
在这里插入图片描述

client

#include "net.h"int main (void)
{int fd = -1;struct sockaddr_in sin;/* 1. 创建socket fd */if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0) {perror ("socket");exit (1);}/*2.连接服务器 *//*2.1 填充struct sockaddr_in结构体变量 */bzero (&sin, sizeof (sin));sin.sin_family = AF_INET;sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号
#if 0sin.sin_addr.s_addr = inet_addr (SERV_IP_ADDR);
#elseif (inet_pton (AF_INET, SERV_IP_ADDR, (void *) &sin.sin_addr) != 1) {perror ("inet_pton");exit (1);}
#endifif (connect (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) {perror ("connect");exit (1);}printf ("Client staring...OK!\n");/*3. 读写数据 */char buf[BUFSIZ];int ret = -1;while (1) {bzero (buf, BUFSIZ);if (fgets (buf, BUFSIZ - 1, stdin) == NULL) {continue;}do {ret = write (fd, buf, strlen (buf));} while (ret < 0 && EINTR == errno);if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符printf ("Client is exiting!\n");break;}}/*4.关闭套接字 */close (fd);
}

server

#include "net.h"int main (void)
{int fd = -1;struct sockaddr_in sin;/* 1. 创建socket fd */if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0) {perror ("socket");exit (1);}/*2. 绑定 *//*2.1 填充struct sockaddr_in结构体变量 */bzero (&sin, sizeof (sin));sin.sin_family = AF_INET;sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号/*优化1: 让服务器程序能绑定在任意的IP上 */
#if 1sin.sin_addr.s_addr = htonl (INADDY_ANY);
#elseif (inet_pton (AF_INET, SERV_IP_ADDR, (void *) &sin.sin_addr) != 1) {perror ("inet_pton");exit (1);}
#endif/*2.2 绑定 */if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) {perror ("bind");exit (1);}/*3. 调用listen()把主动套接字变成被动套接字 */if (listen (fd, BACKLOG) < 0) {perror ("listen");exit (1);}printf ("Server starting....OK!\n");int newfd = -1;/*4. 阻塞等待客户端连接请求 */
#if 0newfd = accept (fd, NULL, NULL);if (newfd < 0) {perror ("accept");exit (1);}
#else/*优化2:通过程序获取刚建立连接的socket的客户端的IP地址和端口号 */struct sockaddr_in cin;socklen_t addrlen = sizeof (cin);if ((newfd = accept (fd, (struct sockaddr *) &cin, &addrlen)) < 0) {perror ("accept");exit (1);}char ipv4_addr[16];if (!inet_ntop (AF_INET, (void *) &cin.sin_addr, ipv4_addr, sizeof (cin))) {perror ("inet_ntop");exit (1);}printf ("Clinet(%s:%d) is connected!\n", ipv4_addr, ntons (cin.sin_port));#endif/*5. 读写 *///..和newfd进行数据读写int ret = -1;char buf[BUFSIZ];while (1) {bzero (buf, BUFSIZ);do {ret = read (newfd, buf, BUFSIZ - 1);} while (ret < 0 && EINTR == errno);if (ret < 0) {perror ("read");exit (1);}if (!ret) {				//对方已经关闭break;}printf ("Receive data: %s\n", buf);if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符printf ("Client is exiting!\n");break;}}close (newfd);close (fd);return 0;
}

在这里插入图片描述
这个是让他在任意ip上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/wzjs/380152.html

相关文章:

  • 丹灶做网站外链服务
  • 网站怎样做301平台优化
  • 网站建设美化网络推广网站电话
  • 石家庄模板建站系统淘宝关键词优化技巧教程
  • 国外做giveaway的网站抖音关键词优化排名
  • 网站建设中国十强军事新闻头条
  • 江苏网站建设费用seo外链优化
  • 官方网站如何建立seo技术是干什么的
  • 深圳市做网站的企业超级搜索引擎
  • 我想做个旅游网站怎么做合肥seo优化公司
  • 有了网站源码怎么做网页九幺seo优化神器
  • 交友网站建设策划方案(2)百度seo技术优化
  • 昆明网站建设代理山东seo
  • 哪里有做网站服务商线上购买链接
  • 网站改版怎么做301重定向百度网盘官网网页版
  • 织梦网站模板怎么用十大永久免费的软件下载
  • 免费设计素材的网站电商数据查询平台
  • 网站招聘顾问做啥的免费培训机构
  • 域名怎么用到自己做的网站互动营销案例
  • 兰州电商平台网站建设网站如何建立
  • 湖南网站建设公司广州百度推广优化排名
  • b2b网站注册广告关键词
  • 网加做网站推广网络营销典型案例
  • 合肥网站建设方案郑州网站制作推广公司
  • 网站怎么做中英文切换商务网站如何推广
  • 泉州做网站的公司关键词搜索排名工具
  • 网站上线倒计时 模板缅甸最新新闻
  • 长春建设银行社会招聘网站数据分析师培训机构
  • 淘宝客采集网站建设快速排名怎么做
  • 身份证过期了可以做网站备案吗银川seo