linux网络编程1

netstat -apn | grep 端口号     可以查看指定端口号的占用情况

socket:

大小端存储法:

大端 - 网络传输是从内存低字节开始发,于是高位数字放在低内存

小端 - cpu计算时带权重,高内存放数字的高字节,低内存放数字的低字节 

网络字节序:

ip地址转换函数

socketaddr:

流程图:客户端不需要bind,可由客户机随机分配一个(隐式绑定),而服务器一定要显示绑定,否则客户端找不到对象。(客户端比作学生,住哪个宿舍无所谓,服务器比作教室,每天一定要在这个教室上课。)


 

bind:往socket上绑定ip和端口号

listen函数指定同时能有多少个客户端能与我建立连接,即处于3次握手队列的连接数之和

socket:

bind:

listen:

accept:accept()系统调用主要用在基于连接的套接字类型,比如SOCK_STREAM和SOCK_SEQPACKET。它提取出所监听套接字的等待连接队列中第一个连接请求创建一个新的套接字,并返回指向该套接字的文件描述符。新建立的套接字不在监听状态,原来所监听的套接字也不受该系统调用的影响。

connect:

代码:

服务器端:图中一句话错了,是调用accept就阻塞监听,而不是listen,listen只是设置最大连接个数

加上打印客户端ip和端口号的功能,以及每次重置serv_addr的功能:

serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);

inet_pton(AF_INET,"192.168.42.100",&serv_addr.sin_addr.s_addr);

这两种方法是等价的,(假设指定本机ip为192.168.42.100

客户端程序:

应该加上返回值判断,处理各个函数调用的出错情况

特别注意read函数的返回值情况:

半关闭:

time_wait状态时服务还能再次启动,要用到端口复用技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值