套接字编程— Linux

什么是插座?

套接字是网络中两个主机之间完成的任何类型的网络通信的虚拟端点 。 套接字可用于多种语言,如Java,C ++,C等。Linux上的套接字API与它演变而来的BSD / UNIX套接字类似。 尽管随着时间的流逝,API在某些地方已经变得略有不同,但是现在更新的官方标准是POSIX套接字API,它与BSD套接字相同。

如何创建一个套接字?

要创建一个套接字,我们可以使用Socket函数 。 这是示例代码。

socket()创建一个套接字并返回一个可以在其他函数中使用的描述符。 上面的代码将创建具有以下属性的套接字。

  • 地址族:AF_INET(IP版本4)
  • 类型:SOCK_STREAM(TCP协议)
  • 通讯协定:0(预设IP通讯协定)
  • 除了使用SOCK_STREAM类型的套接字外,还有另一种称为SOCK_DGRAM的类型,它指示UDP协议

将套接字连接到服务器。

  • 我们需要上面创建的套接字的IP地址和端口号。 然后,我们可以在给定的端口号上连接到远程服务器。
  • 要连接到远程服务器,我们需要做几件事。 首先是用适当的值创建一个sockaddr_in结构。
  • sockaddr_in具有一个名为in_addr的名为sin_addr的成员,该成员的s_addr只是一个长字符 。 函数inet_addr是一个非常方便的函数,用于将IP地址转换为长格式。
    #server.sin_addr.s_addr = inet_addr(“ 127.0.0.1”);
  • 使用Connect()需要一个套接字和一个sockaddr结构进行连接。
  • 尝试连接到不同于端口80的端口,您将无法连接,这表明该端口未打开以进行连接。