- 网络编程基础
网络编程,首先了解计算机网络体系结构是有必要的,着重掌握TCP、IP协议,理解socket的概念,理解数据报方式和流式套接字的原理,熟练掌握相关数据结构的使用 -
数据报和流式套接字的工作过程
-
基本概念
linux操作系统一切皆文件的概念在socket通信过程中体现的十分完整,通过一个文件描述符来索引一个socket,创建socket的系统调用为相关参数的含义可查看manual文档,其中domain比较特殊,可取下表
一般我们使用的AF_INET域中的套接字地址 - 一个简单的例子
server.c
client.c#include<stdio.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> int main(){ int server_fd, client_fd; int server_addr_len, client_addr_len; struct sockaddr_in server_addr, client_addr; server_addr_len = sizeof(server_addr); server_fd = socket(AF_INET, SOCK_STREAM, 0); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); server_addr.sin_port = 8000; bind(server_fd, (struct sockaddr *)&server_addr, server_addr_len); listen(server_fd, 5); while(1){ printf("服务器等待消息!\n"); char ch; client_addr_len = sizeof(client_addr); client_fd = accept(server_fd, (struct sockaddr *) &client_addr, (socklen_t *)&client_addr_len); read(client_fd, &ch, 1); ch++; write(client_fd, &ch, 1); close(client_fd); } return 0; }
#include<stdio.h> #include<netinet/in.h> #include<sys/types.h> #include<sys/socket.h> #include<unistd.h> #include<arpa/inet.h> #include<stdlib.h> #include<string.h> int main(){ struct sockaddr_in server_addr; int server_add
linux网络编程
最新推荐文章于 2024-06-14 16:58:11 发布