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

安徽省建设厅安全协会网站安康市滴滴公司电话

安徽省建设厅安全协会网站,安康市滴滴公司电话,域名如何跟网站绑定,辽宁建设工程信息网进不去目录 1.编程流程 2.代码演示 2.1 服务器代码 2.2 客户端代码 3.注意 3.1 ping命令 3.2 netstat命令 3.3 为什么memset? 3.4 哪个会阻塞? 3.5 显示连接信息 1.概念 1.1 编程流程 1.2 connect与listen connect方法执行后,会进行三次握手,建立连…

目录

1.编程流程

2.代码演示

2.1 服务器代码

 2.2 客户端代码

3.注意

3.1 ping命令

3.2 netstat命令

3.3 为什么memset?

3.4 哪个会阻塞?

3.5 显示连接信息


1.概念

1.1 编程流程

1.2 connect与listen

connect方法执行后,会进行三次握手,建立连接。

listen的第二个参数的含义?

已完成三次握手的等待队列的长度 

2.代码演示

2.1 服务器代码

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
int main()
{int sockfd=socket(AF_INET,SOCK_STREAM,0);//监听套接字assert(sockfd!=-1);struct sockaddr_in saddr,caddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);//主机,网络大小端转换saddr.sin_addr.s_addr=inet_addr("127.0.0.1");//IP地址转换int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));assert(res!=-1);res=listen(sockfd,5);assert(res!=-1);while(1){int len=sizeof(saddr);int c=accept(sockfd,(struct sockaddr*)&caddr,&len);//链接套接字if(c<0){continue;}printf("accept c=%d\n",c);char buff[128]={0};recv(c,buff,127,0);printf("buff=%s\n",buff);send(c,"ok",2,0);close(c);}close(sockfd);exit(0);
}

 2.2 客户端代码

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
int main()
{int sockfd=socket(AF_INET,SOCK_STREAM,0);//监听套接字assert(sockfd!=-1);struct sockaddr_in saddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);saddr.sin_addr.s_addr=inet_addr("127.0.0.1");int res=connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));assert(res!=-1);printf("input:\n");char buff[128]={0};fgets(buff,127,stdin);send(sockfd,buff,strlen(buff),0);memset(buff,0,128);recv(sockfd,buff,127,0);printf("read:%s\n",buff);close(sockfd);exit(0);
}

运行结果: 

 

3.注意

3.1 ping命令

如果出错了,可以使用ping命令
ping主要用来测试两个主机之间的连通性

3.2 netstat命令

用netstat可以查看IP地址和端口号的使用情况,netstat是一个功能很强大的网络信息统计工具,它可以打印本地网卡接口上的全部链接,路由表信息,网卡接口信息等.
网络编程我们主要用的就是,显示TCP连接及其状态信息

运行服务器代码再执行netstat命令:

运行服务器和客户端代码再执行netstat命令:

 

3.3 为什么memset?

sin_zero成员暂不使用,但总是将它置为0,为方便起见,在初始化结构时,我们一般是将整个结构置为0,而不仅仅是设置sin_zero成员为0;

3.4 哪个会阻塞?

listen不会阻塞;
accept会阻塞,如果已完成三次握手的队列为空,就是没有客户端和服务器连接,那么就无法处理接受连接客户端,就会阻塞在这里:
比如演示accept阻塞的情况,我们在accept之前加一句代码:

printf("accept wait...\n");

3.5 显示连接信息

要显示客户端的IP地址和端口:

printf("accept client ip:%s ,port=%d\n",inet_ntoa(caddr.sin_addr),ntohs(caddr.sin_port));

 运行结果:

http://www.yayakq.cn/news/802830/

相关文章:

  • 网站如何做ip签名图片长安微网站建设
  • 网站建站前期准备工作如何做好网站的推广工作
  • 一级A视网站 一级做爰片网页设计与网站建设
  • 云服务器网站解析长春财经学院宿舍图片
  • 湘潭网站建设选择湘潭振企网站建设外包加工网可信吗
  • 做电商看的网站有哪些内容站群系统程序
  • 网站建设仟金手指专业12it需要什么学历
  • 网站建设实训小组报告广告片制作哪家好
  • 企业网站营销百度排名优化专家
  • 做网站制作外包西安营销型网站建设
  • 重庆网站建智慧团建官方登录
  • 网站建设及推广费记什么科目网络规划设计师资料
  • 基本网站建设技术做电工的有接单的网站吗
  • 衡水seo_衡水网站建设-燕丰收学室内设计网站
  • 高端网站建设公司好不好做创业网站赚钱
  • 免费推广网站推荐手机网站建设收费
  • 网络界面设计长沙网站seo服务
  • 杞县网站建设在线友情链接
  • 淮安汽车集团网站建设宁波网络公司设计装修
  • 南昌网站建设在哪里濮阳市网站建设公司
  • 为什么网站打开老是提示建设中wordpress客户使用的后端
  • 网站建设安排总结有学做美食的网站吗
  • 琴行网站建设方案劳动仲裁院内部网站建设
  • 如何做视频网站首页多版本wordpress
  • 网站建设的创意洛阳霞光网络科技有限公司
  • 绿色在线网站模板下载建筑公司组织架构
  • 简述网站建设方案类型成都市做网站的公司
  • 安陆网站设计做网站需完成的软件
  • wordpress站点标题做游戏奖金不被发现网站
  • 南京网站建设一条龙做暖网站