
Linux网络编程
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
Linux之判断socket是否断开
1.方式一:int rv_len;socklen_t val;rv_len = sizeof(val);int ret = getsockopt(client_sockfd, SOL_SOCKET, SO_SNDBUF, &val, (unsigned int*)&rv_len);if( ret == -1){ //socket断开}2.方式二len = recv(client_sockfd, rev_buf, sizeof(rev_buf), MSG_DONTWA.原创 2021-11-26 20:59:29 · 3049 阅读 · 0 评论 -
Linux Socket之send()异步通信时:Broken pipe报错
1.问题:在Client端send数据到Server端的时,收到来自Server端发来的Broken pipe信号,导致Client端异常退出!2.原因分析:# man 7 signalSignal Value Action CommentSIGPIPE 13 Term Broken pipe: write to pipe with no readers; see pipe(7)3.解决方案:两种<1>.方式一如果隐式不调用SIGP.原创 2021-11-19 15:58:29 · 4371 阅读 · 0 评论 -
TCP/UDP数据包最大传输MTU
概念以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元). 但这并不是指链路层的长度被限制在1500字节,其实这这个MTU指的是链路层的数据区.并不包括链路层的首部和尾部的18个字节.所以,事实上,这个1500字节就是网络层IP数据报的长度限制.因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的转载 2021-06-01 19:34:32 · 5292 阅读 · 0 评论 -
Linux之通过域名得到ip(五)
#include <stdio.h>#include <netdb.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>int main(int argc, char *argv[]){ if (argc < 2) re...原创 2019-07-16 23:47:03 · 890 阅读 · 0 评论 -
Linux之一张图让你搞懂DES与RSA混合加密技术(十三)
【代码】Linux之一张图让你搞懂DES与RSA混合加密技术(十三)转载 2018-11-17 12:24:14 · 4314 阅读 · 0 评论 -
socket解决:Address already in use报错问题
int serverfd;1.serverfd = socket(AF_INET , SOCK_STREAM, 0);2.//socket在bind之前,用SO_REUSEADDR设置地址重用:on=1;int on = 1;if((setsockopt(serverfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)))<0){ perror原创 2017-08-17 17:26:49 · 4380 阅读 · 0 评论 -
Linux下epoll实现简单的C/S通信
原址epoll的优点:1.支持一个进程打开大数目的socket描述符(FD) select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的 A转载 2017-08-17 14:47:56 · 1195 阅读 · 0 评论 -
802.11 MAC层帧解析
注1:本文STA为station简称,AP为access piont简称。 注2:本文属于个人理解,存在错误望见谅和指正。1.MAC帧格式对应的数据结构如下:typedef struct _rtw_ieee80211_hdr_qos { __le16 frame_ctl; __le16 duration_id; u8 addr1[ETH_ALEN]转载 2017-04-18 19:33:30 · 24230 阅读 · 1 评论 -
Linux网络编程——原始套接字编程
Linux网络编程——原始套接字编程转自:http://blog.youkuaiyun.com/tennysonsky/article/details/44676377原始套接字编程和之前的 UDP 编程差不多,无非就是创建一个套接字后,通过这个套接字接收数据或者发送数据。区别在于,原始套接字可以自行组装数据包(伪装本地 IP,本地 MAC),可以接收本机网卡上所有的数转载 2016-03-15 18:06:09 · 532 阅读 · 0 评论