
Socket通信及协议相关
超越梦想
这个作者很懒,什么都没留下…
展开
-
Linux 下简单TCP通信程序
服务端#include #include #include #include #include #include int main(int argc,char *argv[]){ int server_sockfd; int client_sockfd; int server_len, client_len; struct sockaddr_in转载 2012-11-15 08:57:07 · 1080 阅读 · 0 评论 -
基于线程池的OpenSSL编程
服务端#include #include #include #include #include #include #include #include #include #include #include #include SSL_CTX *ctx;int server_sockfd;pthread_mutex_t mutex = PTHREAD_MUTEX_I原创 2012-11-15 09:14:56 · 1346 阅读 · 0 评论 -
检测非正常断开的TCP连接
此处的”非正常断开”指TCP连接不是以优雅的方式断开,如网线故障等物理链路的原因,还有突然主机断电等原因。有两种方法可以检测:1.TCP连接双方定时发握手消息 2.利用TCP协议栈中的KeepAlive探测。第二种方法简单可靠,只需对TCP连接两个Socket设定KeepAlive探测,所以本文只讲第二种方法在Linux,Window2000下的实现(在其它的平台上没有作进一步的测试)。w转载 2013-03-27 10:23:32 · 2004 阅读 · 0 评论 -
多播包的发送与接收
Listener Program#include #include #include #include #include #include #include #define HELLO_PORT 12345#define HELLO_GROUP "225.0.0.37"#define MSGBUFSIZE 256main(int argc, char *argv[]){转载 2015-07-24 11:22:49 · 1197 阅读 · 0 评论 -
NAT的四种类型及检测[转]
考虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。用语定义转载 2017-07-04 09:07:44 · 517 阅读 · 0 评论 -
P2P中NAT之间的打洞可能性
我们看看不同NAT之间的NAT打洞。NAT打洞需要Server配合,需要2种Server:1. 类似WebRTC中的信令服务器,作用是帮助客户机沟通IP和PORT信息;2. STUN Server,用来让客户机判断自己所在的NAT环境。现在假设客户端和Server的通讯都没问题,客户端知道自己所处环境,并且将自己的信息通过服务器发送给了另一方客户端,它们可能的打洞情转载 2017-07-04 09:08:36 · 525 阅读 · 0 评论