lixun系统怎么开启socket函数
发布网友
发布时间:2022-04-25 03:04
我来回答
共1个回答
热心网友
时间:2023-10-22 14:56
1. socket()函数
#include <sys/types.h>
#include <sys/socket.h>
int socket(int domain , int type , int protocol);
首先,domain 需要被设置为 “AF_INET”,就像上面的struct
sockaddr_in。然后,type参数告诉内核这个socket
是什么类型,“SOCK_STREAM”或是“SOCK_DGRAM”。最后,只需要把protocol 设置为0 。
socket()函数只是简单的返回一个你以后可以使用的套接字描述符。如果发生错误,socket()函数返回 –1 。全局变量errno 将被设置为错误代码。(可以参考perror() 的manpages)
2. bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen)
bind()的系统调用声明如下:
#include <sys/types.h>
#include <sys/socket.h>
int bind (int sockfd , struct sockaddr *my_addr , int addrlen) ;
参数说明:
l sockfd 是由socket()函数返回的套接字描述符。
l my_addr 是一个指向struct sockaddr 的指针,包含有关你的地址的信息:名称、端口和IP 地址。
l addrlen 可以设置为sizeof(struct sockaddr)。
当bind()函数调用错误的时候,它也是返回–1 作为错误发生的标志。errn 的值为错误代码。
当你调用bind()的时候,不要把端口数设置的过小!小于1024 的所有端口都是保留下来作为系统使用端口的,没有root 权利无法使用。你可以使用1024 以上的任何端口,一直到65535