- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 非阻塞socket与epoll
阻塞socket 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。 对于文件操作read,fread函数调用会将线程阻塞 对于socket,accept与recv,recvfrom函数调用会将线程阻塞 对于socket,accept与recv,recvfrom函数调用会将线程阻塞 为了避免整个线程被阻塞后挂起,所以在阻塞模式下,往往需要采用多线程技术。
2015-08-29 09:56:54 1299
原创 setsockopt()
int setsockopt(int s,int level,int optname,const void *ptval,socklen_t optlen); setsockopt函数设置套接口 常见用法为: int on=1; setsockopt(st,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
2015-08-22 00:59:59 463
原创 IP地址转化为文本
例如 struct sockaddr_in addr; addr.sin_addr.s_addr=inet_addr("127.0.0.1"); printf("%s",inet_ntoa(addr.sin_addr)); 输出结果为 127.0.0.1 上面的方法在多线程中并不安全 所以可以自己写一个转换的函数 void socket_toa(const struct
2015-08-22 00:57:31 757
原创 使用套接字的四个步骤
1分配接口和初始化 2连接 3发送和接收数据 4关闭套接字 涉及到的调用包括socket bind listen connect accept recv send
2015-08-21 23:51:50 1467
原创 TCP使用过程
tcp使用的过程, client端,主动连接方叫client。 server端,被动接收方叫server。 1、TCP先连接(三次握手) client > server:发送SYN a server > client:回复SYN b,ack a + 1 client > server ack b + 1 2、连接通了,双方可以互相收发消息 3、断开连接 clien
2015-08-21 23:49:43 544
原创 linux多线程
线程标识: 就像每个进程都有一个ID一样,线程也有自己的ID。 进程ID用pid_t来表示,他是一个unsigned int。 进程ID用pthread_t来表示,pthread_t不能把它当整数处理。 进程可以通过pthread_self()函数获得自身的线程ID。 线程创建: 在进程中只有一个控制线程 程序开始运行的时候每个进程
2015-08-21 17:20:41 384
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人