前言 - 思考还是 socket 写过一点点, 总感觉很别扭. 例如 read, recv, recvfrom 这些为啥这么奇葩. 这是 linux 的设计吗. 这种强糅合的 read 代码, '带坏'了多少人. 想起很久以前看过的 <<UNIX痛恨者手册>>, 外加上常写点跨平台 库. 不得不思考 ...
一、基于UDP的网络编程模型 服务器端 1、创建socket. 2、将fd和服务器的ip地址和端口号绑定 3、recvfrom阻塞等待接收客户端数据 4、业务处理 5、响应客户端 客户端: 1、创建socket 2、向服务器发送数据sendto 3、阻塞等待服务器的响应信息 4、处理响应信息 5、断... ...
分类:
编程语言 时间:
2017-10-25 23:56:27
阅读次数:
268
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等 待某个事件的发生,如果事 ...
分类:
其他好文 时间:
2017-10-11 20:27:50
阅读次数:
164
一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 recv与recvfrom的区别 十 粘包现象 十一 什么是粘包 十二 解决粘包的low比处理方法 十三 解决粘包的方法 ...
分类:
编程语言 时间:
2017-10-07 19:39:40
阅读次数:
253
send,recv,sendto,recvfrom send函数 int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。 客户程序一般用send函数向服 ...
分类:
其他好文 时间:
2017-09-17 20:53:50
阅读次数:
147
转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型。 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层、应用层到内核的调用过程是这样的:首先把描述符、接受数据缓冲地址、大小传递给内核,但是如果此时 该与该套接口相应的缓冲区没有数据,这个时候就r ...
分类:
其他好文 时间:
2017-09-02 23:20:06
阅读次数:
176
基于Udp套接字 服务器端: udp_server=socket(AF_INET,SOCK_DGRAM):创建一个服务器的套接字 udp_server.bind(('127.0.0.1',8080)):绑定服务器套接字 data,client_addr=udp_server.recvfrom(102 ...
分类:
编程语言 时间:
2017-09-01 12:49:08
阅读次数:
141
//TCP and UDP can bind to the same IP & port. #include #include #include #include #include #include #include #include #include #include #include #incl... ...
分类:
系统相关 时间:
2017-09-01 00:56:49
阅读次数:
325
#include <stdio.h>#include <unistd.h>#include <signal.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>#include <sys/types.h>#include ...
分类:
其他好文 时间:
2017-08-24 22:36:31
阅读次数:
171
一、socket是什么 在TCP/IP五层协议中,工作在应用层的软件程序要想把它的数据发送给网络另一端的计算机并让那台计算机能把接收到的数据正常解析出来传递给对应的程序就需要按照互联网协议在数据的前面依次加上每一层的头部信息,如果这个过程让程序员自己去完成就需要去了解每一层的协议的工作原理,这无疑是 ...
分类:
编程语言 时间:
2017-08-24 12:34:06
阅读次数:
171