做课件的软件下载带有蓝色的网站,店铺设计图片,网页设计期末作品源代码,屋领网站固链TCP/IP网络编程#xff1a;理解网络编程和套接字
网络编程又叫做套接字编程#xff0c;是因为在网络编程中依赖使用套接字(socket),网络编程一般是C/S架构#xff0c;即客户端/服务器模式#xff0c;在服务器端依赖套接字绑定自身接口#xff0c;并开启监听客户端连接理解网络编程和套接字
网络编程又叫做套接字编程是因为在网络编程中依赖使用套接字(socket),网络编程一般是C/S架构即客户端/服务器模式在服务器端依赖套接字绑定自身接口并开启监听客户端连接然后进行读写操作客户端则依赖套接字进行接口连接以进行收发操作。
服务器端
服务器端遵循以下步骤进行搭建
创建套接字绑定监听端口开始监听接受连接进行读写操作关闭连接
下面是创建服务器端通讯的实例
//步骤1创建套接字int server_sock;server_sock socket(PF_INET,SOCK_STREAM,0);if (server_sock -1){error_handing(socket() error);}//步骤2绑定监听端口struct sockaddr_in server_addr;memset(server_addr,0,sizeof(server_addr));server_addr.sin_family AF_INET;server_addr.sin_addr.s_addr htonl(INADDR_ANY);server_addr.sin_port htons(atoi(3333));if (bind(server_sock,(struct sockaddr *)server_addr,sizeof(server_addr)) -1){error_handing(bind() error);}//步骤3开启监听if (listen(server_sock,5) -1){error_handing(listen() error);}//步骤4接受连接int accept_sock;struct sockaddr accept_addr;socklen_t len sizeof(accept_addr);accept_sock accept(server_sock,accept_addr,len);if (accept_sock -1){error_handing(accept() error);}//步骤5开始通讯char message[10];if (read(accept_sock,message,10) -1){error_handing(read() error);}printf(Read message is %s\n,message);if (write(accept_sock,message,10) -1){error_handing(write() error);}//步骤6关闭连接close(accept_sock);close(server_sock);客户端
客户端遵循以下步骤进行搭建
创建套接字指定端口连接进行通讯关闭连接
下面是创建客户端通讯的实例
//步骤1创建套接字int client_sock;client_sock socket(PF_INET,SOCK_STREAM,0);if (client_sock -1){error_handing(socket() error);}//步骤2连接端口struct sockaddr_in connect_addr;connect_addr.sin_family AF_INET;connect_addr.sin_addr.s_addr inet_addr(127.0.0.1);connect_addr.sin_port htons(3333);if (connect(client_sock,(struct sockaddr *)connect_addr,sizeof(connect_addr)) -1){error_handing(connect() error);}//步骤3进行通讯if (write(client_sock,nihao,sizeof(nihao)) -1){error_handing(write() error);}char buffer[30];if (read(client_sock,buffer,30) -1){error_handing(read() error);}printf(Receive message is %s\n,buffer);//步骤4关闭连接close(client_sock);网络套接字和文件描述符
在Linux环境中操作网络套接字和文件描述符是一样的上面实例中使用write()和read()函数操作网络套接字 用法跟操作文件描述符别无二致操作系统自动绑定了0、1、2对应I/O描述符的标准输入、标准输出和标准错误