![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
socket
文章平均质量分 85
Crazy_Tortoise
A Crazy Tortoise
展开
-
UDT:基于UDP的数据传输协议
UDT: UDP-based Data Transfer Protocoldraft-gg-udt-03UDT:基于UDP的数据传输协议(初译)(译者:Jack) Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions转载 2013-07-17 16:53:31 · 1758 阅读 · 0 评论 -
Socket编程指南及示例程序
原文地址: http://www.blogjava.net/wxb_nudt/archive/2007/11/01/157623.html例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nud转载 2013-11-18 01:04:05 · 897 阅读 · 0 评论 -
udp丢包原因分析及总结
原文地址:http://blog.sina.com.cn/s/blog_a459dcf5010153nd.html1、调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包。虽然send方法会帮你转载 2013-11-17 22:28:44 · 1395 阅读 · 0 评论 -
同一端口如何区分不同的Socket
为了区分不同应用进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。 Socket的原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 accept()产生的Socket端口号是多少?转载 2013-11-27 23:35:13 · 784 阅读 · 0 评论 -
SOCKET UDP组播 实例
阻塞式的基于UDP的组播程序代码,在Windows XP上测试通过~客户端Sender.cpp#include #include #define HELLO_PORT 7905 #define HELLO_GROUP "228.4.5.6" #pragma comment(lib, "WSOCK32.lib") int main(int argc, char *a转载 2013-12-07 18:55:27 · 1559 阅读 · 0 评论 -
linux下RAW SOCKET
raw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_I转载 2014-03-03 15:22:18 · 917 阅读 · 0 评论 -
TCP/IP 协议簇下的各报文结构总结
一、TCP/IP 协议簇层次结构:二、具体的协议有:说明:1. ARP和RARP 用于物理地址和网络地址间的转换,应属于物理链路层。但由于ARP和RARP在以太网帧中都有各自的帧类型,所以画在以太网驱动程序和IP之间。2. ICMP和IGMP 通常用于查询网络管理,也就是被认为是IP层的组成部分。但它们都是被封装在IP报文中传输,在IP的协议类型转载 2014-03-17 08:57:23 · 845 阅读 · 0 评论 -
setsockopt()用法
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*转载 2014-04-10 16:56:50 · 818 阅读 · 0 评论 -
Linux网络编程socket错误分析
socket错误码:EINTR:4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interruptedsystem call,操作也应该继续。如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束。转载 2014-04-10 16:54:16 · 744 阅读 · 0 评论 -
Linux的SOCKET编程详解
原文地址:1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(message转载 2014-07-26 19:01:53 · 554 阅读 · 0 评论 -
客户端 用不用 bind 的区别
原文地址:http://blog.chinaunix.net/uid-23193900-id-3199173.html无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用的端口来使用。 Bind()函数在成功被调用时返回0;出现错误时返转载 2013-11-27 23:17:49 · 1270 阅读 · 0 评论 -
LINUX下Socket编程 函数格式详解
你需要了解的一些系统调用:socket()bind()connect()listen()accept()send()recv()sendto()recvfrom()close()shutdown()setsockopt()getsockopt()getpeername()getsockname()gethostbyname()ge转载 2014-07-29 08:40:29 · 712 阅读 · 0 评论 -
网络编程常见函数的返回值
以前写程序很多时候图方便不管它的返回值,因为觉得一般不会调用错误,现在发现这是一个很不好的习惯。int socket函数:成功时返回相应socket号,失败时返回-1。int bind函数:成功时返回0,失败时返回-1并会将erron置为相应的错误号。int listen函数:成功返回0,失败返回-1并设置相应的错误号。int accept函数:成功时返回新的套接字转载 2013-11-18 01:01:22 · 1272 阅读 · 0 评论 -
UDP可靠传输那些事
原文地址:http://blog.csdn.net/danscort2000/article/details/8432778 有空来论坛走走,发现讨论udp可靠传输又热了起来,有人认为udp高效率,有人认为udp丢包重传机制容易控制,还有朋友搞极限测试,当然也有人推销自己的东西,这里写一点我个人的看法。 udp可靠传输其实非常非常的简单,我最开始接触udp可靠传输大转载 2013-11-17 23:07:01 · 941 阅读 · 0 评论 -
struct sockaddr、sockaddr_in
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */转载 2013-07-04 22:21:25 · 622 阅读 · 0 评论 -
sockaddr与sockaddr_in结构体简介
struct sockaddr 是一个通用地址结构,这是为了统一地址结构的表示方法,统一接口函数,使不同的地址结构可以被bind() , connect() 等函数调用;struct sockaddr_in中的in 表示internet,就是网络地址,这只是我们比较常用的地址结构,属于AF_INET地址族,他非常的常用,以至于我们都开始讨论它与 struct sockaddr通用地址结构的区别。另原创 2013-07-04 23:17:15 · 604 阅读 · 0 评论 -
C++基于TCP和UDP的socket通信
TCP和UDP属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它事先为要发送的数据开辟好连接通道(三次握手),然后再进行数据发送;而UDP则不为IP提供可靠性,一般用于实时的视频流传输,像rtp、rtsp就是建立在udp的基础上的。 首先谈谈tcp socket tcp简单的三次握手过程如图, SYN(Synchronize Sequen转载 2013-07-04 20:33:52 · 1051 阅读 · 0 评论 -
WSAGetLastError返回的可能错误代码
WSAGetLastError (Wsapiref_2tiq.asp) 函数返回了可能的错误代码。 错误错误宏按字母顺序列出。 不从任何函数返回在 Winsock2.h 中定义一些错误代码。 本文中不包括这些错误代码。更多信息WSAEINTR (10004) 翻译: 中断函数调用。 说明: A 阻塞操作已被 WSACancelBlockingCall (Wsapiref_704y.a...转载 2013-07-05 17:51:39 · 1958 阅读 · 0 评论 -
struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表
Linux 用户态与内核态的交互 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与用户空间的通 读,也在最新版本中改变为netlink,无疑,它将是Linux用户态与内核态交流的主要方法之一。它的通信依据是转载 2013-08-20 09:37:40 · 698 阅读 · 0 评论 -
Linux下的UDP Socket简单例子
客户端代码 client.c#include #include #include #include int main(int argc, char **argv){ int sockfd; struct sockaddr_in servaddr; sockfd = socket(PF_INET, SOCK_DGRAM, 0);转载 2013-08-19 19:36:21 · 805 阅读 · 0 评论 -
Linux系统下UDP发送和接收广播消息小例子
// 发送端 #include #include #include #include #include #include #include #include #include using namespace std; int main() { setvbuf(stdout转载 2013-08-19 19:37:16 · 912 阅读 · 0 评论 -
Linux kernel路由机制分析
一.前言我对linux2.4.18的相关代码进行了阅读,从关键的几个接口函数入手,进而理清了整个路由部分的主要脉胳,理解了一些细节问题的处理,但还是有些问题还没有完全搞清楚。路由部分代码主要在linux代码树的/net/ipv4/下面: 对于下面报告内容的组织,我想通过由整体到部分到细节的顺序,尽量把我阅读代码学习到的所有的知识做一个有层次有条理的总结。转载 2013-08-20 09:50:55 · 1077 阅读 · 0 评论 -
socket编程头文件和常用函数
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数转载 2013-08-21 09:31:34 · 689 阅读 · 0 评论 -
linux select函数
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所转载 2013-08-29 14:36:07 · 507 阅读 · 0 评论 -
网络学习笔记(一)
以太网它不是一种具体的网络,是一种技术规范。 以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法。以太网在互联设备之间以10~100Mbps的速率传送信息包,双绞线电缆10 Base T以太网由于其低成本、高可靠性以及10Mbps的速率而成为应用最为广泛的以太网技术。直扩的无线以太网可达11Mbps,许多制造供应商提供的产品都原创 2013-10-04 17:30:43 · 1983 阅读 · 0 评论 -
socket通信中select函数的使用和解释
最近在写一个网络通信函数,参考别人的代码时对select()函数的使用存有疑惑,不太确定具体的使用方法,何时使用,以及其作用。在网上搜到一篇文章,觉得介绍的不错,收藏学习。先自我总结一下。 select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet转载 2013-10-17 23:18:26 · 878 阅读 · 0 评论 -
setsocketopt设置socket应用
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,转载 2013-11-17 12:24:36 · 726 阅读 · 0 评论 -
linux sock_raw原始套接字编程
来自:http://blog.csdn.net/baixue6269/article/details/6863408sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket 1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPR原创 2014-03-12 22:13:30 · 4203 阅读 · 1 评论