//1. 创建监听的套接字 int lfd = socket(AF_INET, SOCK_STREAM, 0); if (lfd == -1) { //监听套接字创建失败 perror("socket"); return -1; } //2. 绑定本地的 IP : Port /** * 初始化 saddr 绑定 IP 和 Port 信息 */ struct sockaddr_in saddr; saddr.sin_family = AF_INET; //...
{//初始化WSAWORDsockVersion =MAKEWORD(2,2);WSADATAwsaData;if(WSAStartup(sockVersion, &wsaData)!=0) {return0; }//创建套接字SOCKETslisten =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(slisten ==INVALID_SOCKET) {printf("socket error !");return0; }//绑定IP和端口sockaddr_in sin; sin.sin_...
因为 SOCK_DGRAM 所做的校验工作少,所以效率比 SOCK_STREAM 高。 QQ 视频聊天和语音聊天就使用 SOCK_DGRAM 传输数据,因为首先要保证通信的效率,尽量减小延迟,而数据的正确性是次要的,即使丢失很小的一部分数据,视频和音频也可以正常解析,最多出现噪点或杂音,不会对通信质量有实质的影响。 注意:SOCK_DGRAM 没有想...
socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);//采用UDP协议 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//采用TCP协议 返回值: 该接口返回一个套接字句柄,本质上是一个文件描述符。 返回值大于0,创建成功,返回值小于0,则创建失败。 代码示例: #include <stdio.h> #include <unistd.h> #include <sys/s...
协议域,又称协议族(family),协议族决定了socket的地址类型 常用的有: AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合 AF_INET6 ipv6 AF_LOCAL或AF_UNIX决定了要用一个绝对路径名作为地址 socket类型 常用的socket类型有: SOCK_STREAM 流式Socket 针对于面向连接的TCP服务应用 SOCK_DGRAM 数据报...
说明: 使用一个地址与请求的协议不兼容。所有套接字创建具有相关联的地址族 (即互联网协议的 AF_INET) 和通用协议类型 (即 SOCK_STREAM)。如果不正确的协议明确请求的套接字 (Wsapiref_2qr6.asp) 调用中或者地址错误的系列的用于套接字,例如,发送到 (Wsapiref_4sqa.asp) 中,将返回此错误。
#include<sys/types.h>#include<sys/socket.h>intsocket(intdomain,inttype,intprotocol);//创建socket domain 表示底层协议族。其中IPv4用AF_INET(Protocol Family of Internet),IPv6用AF_INET6。 type 指定服务类型。服务类型主要有SOCK_STREAM(字节流服务)服务和SOCK_DGRAM服务(数据报服务)。对于TCP/IP协议族...
//socket函数:intsocket(int domain,int type,int protocol);//参数释义:domain:AF_INET:用来产生IPV4-socket 的协议,使用TCP或UDP来传输,用IPV4的地址AF_INET6:和上面的差不多,这个是IPV6的AF_UNIX:本地协议,用在Unix和Linux系统上,一般都是服务端和客户端在同一台机器上时使用。type:SOCK_STREAM:这个协议...
失败返回INVALID_SOCKET,成功返回Socket文件句柄</returns>if(AddressFamily == AF_UNSPEC && SocketType ==0&& Protocol ==0) {returnINVALID_SOCKET;}//进行基础数据设置if(AddressFamily == AF_UNSPEC) {AddressFamily = AF_INET;}if(Socket...
if (!AfxSocketInit()) { AfxMessageBox(L"加载套接字库失败"); return FALSE; } 然后在CChatDlg的自定义的函数InitSocket里进行创建套接字等操作,代码如下: m_socket = socket(AF_INET, SOCK_DGRAM, 0); if (INVALID_SOCKET == m_socket) { MessageBox(L"套接字创建失败"); return FALSE; } 其它一些...