Socket编程

03-08 1119阅读

一、socket介绍

**套接字(socket)**是Linux下的一种进程间通信的机制。这个机制不仅可以在不同主机之间实现网络通信,也可以在同一台主机上的不同应用程序完成通信。socket通常使用客户端服务端这种模式完成通信。多个客户端可以同时连接到同一个服务器,由服务器完成数据处理,再将结果返回给客户端。

socket是应用层与TCP/IP协议通信间的中间软件抽象层,它是一组接口。

Socket编程

二、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_LOCALLocal communication [unix(7)]
    AF_INETIPv4 Internet protocols [ip(7)]
    AF_INET6IPv6 Internet protocols [ipv6(77)
    AF_IPXIPX - Novell protocols
    AF_NETLINKKernel 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 

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]