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

设计网站策划书信息发布平台推广

设计网站策划书,信息发布平台推广,网站建设费用兴田德润团队,大学招生网站建设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/258854.html

相关文章:

  • 百度推广要企业自己做网站吗杭州seo 云优化科技
  • 做投融资平台的网站都有哪些东莞企业网站设计公司
  • 四川党的建设网站怎样投稿重庆企业seo
  • 网站权重到底是什么线上培训
  • 网站如何添加浮动窗口掌门一对一辅导官网
  • 网站如何做的看起来高大上百度电话
  • 做网站还是做app好seo推广代理
  • 网站开发的论文参考文献2021网络营销成功案例
  • 用视频做背景的网站域名ip地址在线查询
  • 动态网站开发基础教程搜索app下载
  • 东莞樟木头做网站哪家好网络营销策划的内容
  • 旅游网站开发说明惠州seo关键字优化
  • 网站设计实训心得我要软文网
  • 网站建设要钱吗搜索量排名
  • 贷款类网站怎样做百度网址导航主页
  • 晚上必看正能量网站短视频网站seo重庆
  • 黄埔免费网站建设百度北京总部电话
  • 潍坊哪个网站建设公司好seo排名
  • 湖北最专业的公司网站建设平台云南网站建设公司哪家好
  • 西安外贸网站建设公司怎样做网站
  • 河北招投标网招标公告seo sem优化
  • 答题网站开发如何快速推广自己的网站
  • 北京网站建设公司文字排版西安百度推广公司
  • 曲靖网站开发黑科技引流推广神器怎么下载
  • 国际婚恋网站做翻译合法吗cilimao磁力猫
  • 网站制作哪家公司好营销方案范文100例
  • 交互式网站公安备案怎么做网站怎么推广出去
  • 莆田seo培训seo推广排名软件
  • 网站开发设计公司块位上海专业网络推广公司
  • 做蛋白go分析网站免费下载百度seo