当前位置: 首页 > news >正文

宁波做亚马逊网站四川省建设厅官方网站信息查询

宁波做亚马逊网站,四川省建设厅官方网站信息查询,交互设计英文,wordpress+Apache升级文章目录 理解网络编程和套接字网络编程和套接字概要构建套接字编写 Hello World 服务器端构建请求连接套接字在Linux平台下运行 基于Linux的文件操作打开文件关闭文件将数据写入文件读取文件中的数据 理解网络编程和套接字 网络编程和套接字概要 网络编程就是编写程序使两台… 文章目录 理解网络编程和套接字网络编程和套接字概要构建套接字编写 Hello World 服务器端构建请求连接套接字在Linux平台下运行 基于Linux的文件操作打开文件关闭文件将数据写入文件读取文件中的数据 理解网络编程和套接字 网络编程和套接字概要 网络编程就是编写程序使两台联网的计算机相互交换数据 为了与远程计算机进行数据传输需要连接因特网而编程种的套接字就是用来连接该网络的工具。 构建套接字 1.调用soecket函数创建套接字 #includesys/socket.h int socket(int domain, int type, int protocol);——成功返回文件描述符失败返回-12.调用bind函数给套接字分配地址 #includesys/socket.h int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);——成功返回0失败返回-13.调用listen函数将套接字转化为可接受连接的状态 #includesys/socket.h int listen(int sockfd, int backlog);——成功时返回0失败返回-14.调用accept函数接受连接请求 #includesys/socket.h int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);——成功时返回文件描述符失败返回-1网络编程中接受连接请求的套接字创建过程总结如下 1.调用soecket函数创建套接字 2.调用bind函数给套接字分配地址 3.调用listen函数将套接字转化为可接受连接的状态 4.调用accept函数接受连接请求 编写 Hello World 服务器端 服务器端server是能受理连接请求的程序 hello_server.c #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.hvoid error_handling(char *message);int main(int argc, char *argv[]) {int serv_sock;int clnt_sock;struct sockaddr_in serv_addr;struct sockaddr_in clnt_addr;socklen_t clnt_addr_size;char message[]Hello World!;if(argc!2){printf(Usage : %s port\n, argv[0]);exit(1);}serv_socksocket(PF_INET, SOCK_STREAM, 0);if(serv_sock -1)error_handling(socket() error);memset(serv_addr, 0, sizeof(serv_addr));serv_addr.sin_familyAF_INET;serv_addr.sin_addr.s_addrhtonl(INADDR_ANY);serv_addr.sin_porthtons(atoi(argv[1]));if(bind(serv_sock, (struct sockaddr*) serv_addr, sizeof(serv_addr))-1 )error_handling(bind() error); if(listen(serv_sock, 5)-1)error_handling(listen() error);clnt_addr_sizesizeof(clnt_addr); clnt_sockaccept(serv_sock, (struct sockaddr*)clnt_addr,clnt_addr_size);if(clnt_sock-1)error_handling(accept() error); write(clnt_sock, message, sizeof(message));close(clnt_sock); close(serv_sock);return 0; }void error_handling(char *message) {fputs(message, stderr);fputc(\n, stderr);exit(1); } 构建请求连接套接字 客户端程序只有调用socket函数创建套接字和调用connect函数向服务器发出连接请求两个步骤 hello_client.c #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.hvoid error_handling(char *message);int main(int argc, char* argv[]) {int sock;struct sockaddr_in serv_addr;char message[30];int str_len;if(argc!3){printf(Usage : %s IP port\n, argv[0]);exit(1);}socksocket(PF_INET, SOCK_STREAM, 0);if(sock -1)error_handling(socket() error);memset(serv_addr, 0, sizeof(serv_addr));serv_addr.sin_familyAF_INET;serv_addr.sin_addr.s_addrinet_addr(argv[1]);serv_addr.sin_porthtons(atoi(argv[2]));if(connect(sock, (struct sockaddr*)serv_addr, sizeof(serv_addr))-1) error_handling(connect() error!);str_lenread(sock, message, sizeof(message)-1);if(str_len-1)error_handling(read() error!);printf(Message from server: %s \n, message); close(sock);return 0; }void error_handling(char *message) {fputs(message, stderr);fputc(\n, stderr);exit(1); } 请求连接函数 #includesys/socket.h int connect(int sockfd,struct sockaddr *serv_addr, socklen_t addrlen);——成功返回0失败返回-1在Linux平台下运行 gcc hello_server.c -o hserver ./hserver 9190现在已经打开了服务端但是调用的accept函数还没有返回接下来运行客服端 gcc hello_client.c -o hclient ./hclient 192.168.233.20 9190 输出: Hello World!基于Linux的文件操作 打开文件 #include sys/type.h #include sys/stat.h #include fcnt.hint open(const char *path, int flag);——成功返回文件描述符失败返回-1path 文件名的字符串地址flag 文件打开模式信息文件打开模式 打开模式 含义 O_CREAT 必要时创建文件 O_TRUNC 删除全部现有数据 O_APPEND 维持现有数据保存末尾 O_RDONLY 只读打开 O_WRONLY 只写打开 O_RDWR 读写打开关闭文件 #includeunistd.hint close(int fd);——成功返回0失败返回-1将数据写入文件 #includeunistd.h ssize_t write(int fd, const void *buf, size_t nbytes);——成功时返回写入的字节数失败返回-1buf保存要传输数据的缓冲地址nbytes要传输的字节数函数定义中size_t是通过typedef声明的unsigned int类型对于ssize_t来说s代表signedssize_t为signed int类型 lower_open.c #include stdio.h #include stdlib.h #include fcntl.h #include unistd.hvoid error_handling(char* message);int main(void) {int fd;char buf[]Lets go!\n;fdopen(data.txt, O_CREAT|O_WRONLY|O_TRUNC);if(fd-1)error_handling(open() error!);printf(file descriptor: %d \n, fd);if(write(fd, buf, sizeof(buf))-1)error_handling(write() error!);close(fd);return 0; }void error_handling(char* message) {fputs(message, stderr);fputc(\n, stderr);exit(1); } 读取文件中的数据 与write函数对应read函数是用来接受数据的 #includeunistd.hssize_t read(int fd, void *buf, size_t nbytes)——成功返回接受的字节数失败返回-1lower_read.c #include stdio.h #include stdlib.h #include fcntl.h #include unistd.h#define BUF_SIZE 100void error_handling(char* message);int main(void) {int fd;char buf[BUF_SIZE];fdopen(data.txt, O_RDONLY);if( fd-1)error_handling(open() error!);printf(file descriptor: %d \n , fd);if(read(fd, buf, sizeof(buf))-1)error_handling(read() error!);printf(file data: %s, buf);close(fd);return 0; }void error_handling(char* message) {fputs(message, stderr);fputc(\n, stderr);exit(1); }ps: 在文中出现好多次void error_handling(char* message)函数这个是打印错误信息的也可以用perror函数例如#include stdio.h #include stdlib.h #include fcntl.h #include unistd.hint main() {int fd open(data.txt, O_RDONLY);if(fd -1){perror(open:);} } 更多资料点击 GitHub 欢迎各位读者去Star ⭐学术交流群Q 754410389 持续更新中~~~
http://www.zqtcl.cn/news/651636/

相关文章:

  • 网站开发需要用到哪些软件爱站网权重查询
  • 免费注册个人网站铁路工程造价信息网
  • 电子商务大型网站建设电商静态网页模板
  • 网站建设公司利润怎么样长沙网站制作作
  • 淄博优化网站企业营销型网站做的好
  • 玉泉营网站建设网络营销公司组织架构
  • 网上有专业的做网站吗最新网站域名ip地址查询
  • 大理网站制作公司北京seo服务商找行者seo
  • 有关网站建设合同wordpress 使用
  • 外贸商城网站制作公司毕业设计做系统网站
  • 曲阜住房城乡建设局网站php用什么工具做网站
  • 深圳网站开发奇辰科技视觉vi设计系统
  • 网站开发与管理期末考试工商年检在哪个网站做
  • 网站建设有什么系统深圳微网站
  • 网站建设算什么专业企业建设网站需要注意什么
  • 太原cms建站模板建设部网站监理注销查询
  • 流量对网站排名的影响因素网站内容的作用
  • 彩钢做网站能赚钱吗合肥市住房和城乡建设厅
  • 顺德网站建设itshunde罗村建网站
  • 网站开发语言开发十大免费货源网址
  • 网站建设要那些收费项如何做自己的淘客网站
  • 郴州文明网网站网站设计策划书3000字
  • 免费学习资源网站网站维护得多久
  • 电子商务网站建设考试重点长沙网站推广平台
  • 商业性质网站建设步骤佛山企业网站优化
  • 做网站投入网站设计与开发未来发展方向
  • 网站seo优化外包顾问网站ip解析
  • 贵阳建网站公司兼职网站推广如何做
  • 建设企业网站公司价格page做网站
  • 直播网站建设模板跨境电商选品