Socket编程
一、socket介绍
**套接字(socket)**是Linux下的一种进程间通信的机制。这个机制不仅可以在不同主机之间实现网络通信,也可以在同一台主机上的不同应用程序完成通信。socket通常使用客户端服务端这种模式完成通信。多个客户端可以同时连接到同一个服务器,由服务器完成数据处理,再将结果返回给客户端。
socket是应用层与TCP/IP协议通信间的中间软件抽象层,它是一组接口。
二、socket编程
使用socket接口需要包含的头文件:
//Linux #include #include //Windows #include #include
1、创建一个socket-----socket()
int socket(int domain, int type, int protocol);
socket():用于创建一个网络通信端点(相当于打开了一道门,供数据流出和流入)。
- domain:用于指定一个通信域(通常选择AF_INET)
协议族名字 说明 AF_UNIX,AF_LOCAL Local communication [unix(7)] AF_INET IPv4 Internet protocols [ip(7)] AF_INET6 IPv6 Internet protocols [ipv6(77) AF_IPX IPX - Novell protocols AF_NETLINK Kernel user interface device [netlink(7)] 。。。。。 。。。。。 - type:指定套接字的类型
类型名字 作用 SOCK_STREAM 提供有序的,可靠的,双向的,基于连接通道的字节流,能保证数据完整的传送给对方,用于TCP协议;可以支持带外数据传输机制 SOCK_DGRAM 固定长度,无连接,不可靠的报文传递,用于UDP协议 SOCK_SEQPACKET 固定长度,有序的,可靠的,面向连接的报文传递 SOCK_RAW 表示原始套接字,它允许应用程序访问网络层的原始数据包,此套接字类型使用较少 SOCK_RDM 提供不保证排序的可靠数据报层 SOCK_PACKET 已经过时 - protocol:通常设置为0,表示为给定的通信域和套接字协议类型选择默认协议。
样例:
#include #include #pragma comment(lib,"ws2_32.lib") using namespace std; int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); int socketfd = socket(AF_INET,SOCK_STREAM,0); if (socketfd
- protocol:通常设置为0,表示为给定的通信域和套接字协议类型选择默认协议。
- type:指定套接字的类型
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。