网络相关的东西差点儿都是建立在套接字之上.所以这个内容对于程序猿来说还是蛮重要的啊.事实上套接字也就是一个特殊的设备文件而已,我始终不能明确为什么要叫套接字.这么个奇怪的名字.只是还是就这样算了吧.关键还是编程上.因为其重要性,我还是写的具体一点吧.一.套接字核心函数:intsocket(intdo...
分类:
系统相关 时间:
2014-07-16 20:50:22
阅读次数:
335
转自:http://blog.chinaunix.net/u3/102500/showart_2065640.html一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。2.数据报式套接字(SO...
分类:
系统相关 时间:
2014-07-15 22:56:12
阅读次数:
543
通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/I...
分类:
移动开发 时间:
2014-07-14 16:59:17
阅读次数:
428
前言
sendmsg和recvmsg函数是一对相对下层的套接字发送、接受函数。通过这对函数,我们可以设置或者取得数据包的一些额外的控制信息,这些信息中比较常用的就是本文要介绍的发送、接受接口信息。通过这对函数,我们可以指定一个数据包发送的时候使用的接口(网卡)或者获得一个接受到数据包的来源接口。
sendmsg函数使用
sendmsg(fd, &mhdr, 0)函数中最重要的就是ms...
分类:
其他好文 时间:
2014-07-14 12:57:36
阅读次数:
291
以前一直有这么一个小小的疑惑,当一个进程注册一个套接字后,如果这个套接字没有被调用recv函数接受数据包,那么这个套接字能接受到数据包吗? 或者这样说,如果我的程序注册了一个套接字去接受数据包,但是每收到一个数据包都需要很长一段时间处理,并且在处理数据包的途中recv函数使没有被调用的,那么如果程序再处理数据包的途中有数据包到来,那我的程序会不会漏过这些数据包(那个包到达的时候程序在处理别的包,而...
分类:
系统相关 时间:
2014-07-13 18:43:39
阅读次数:
259
select系统调用不仅对描述符的数量有限制,而且在高并发的情况下,哪怕只有一个活跃的套接字,也要轮询全部的fd set,而epoll采用回调的事件通知机制,只需要处理活跃的套接字。比如Nginx服务器采用的就是epoll,下面这个程序(当接收到大于10B的数据时)展示了epoll在边沿触发和电平触发的不同表现,在edge-trigger模式下,需要我们的程序一次将这次的事情处理完成(比如把数据全...
分类:
其他好文 时间:
2014-07-12 23:43:37
阅读次数:
307
IO复用使得程序能够同时监听多个文件描述符,比如客户端需要同时处理用户输入和网络连接,服务器端需要同时处理监听套接字和连接套接字,select系统调用可以使得我们监听自己感兴趣描述符,可读,可写,异常等事件。select能处理的异常只有带外数据。下面这个程序展示了它的一般用法。
#include
#include
#include
#include
#include //bas...
分类:
其他好文 时间:
2014-07-12 18:53:36
阅读次数:
249
遇到如题的问题,google了一番,找到了解决方法,写下来备用问题:udp发送数据时候报错sendto error : Permission denied改正方法:在创建了套接字后,加上下列代码:int on=1; setsockopt(sock,SOL_SOCKET,SO_REUSEADDR | ...
分类:
其他好文 时间:
2014-07-12 16:01:00
阅读次数:
222
使用TCP的服务器客户机举例
服务器
设置一个简单的TCP服务器涉及下列步骤:
调用 socket()建立套接字调用Binding 把套接字绑定到一个监听端口上。在调用 bind()之前, 程序必须声明一个 sockaddr_in 结构体,用 memset()清除, and the sin_family (AF_INET), and fill its sin_port (the...
分类:
其他好文 时间:
2014-07-10 20:21:58
阅读次数:
278
mtk套接字所有的声明放在soc_api.h条件编译命令最常见的形式为:?12345#ifdef标识符 //程序段1 #else //程序段2 #endif它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
分类:
其他好文 时间:
2014-07-09 16:37:40
阅读次数:
233