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

网站建设学输入一组基因做网络图的网站

网站建设学,输入一组基因做网络图的网站,网站建设培训西安,wordpress 首页图片报文格式最重要的是如何确定报文的边界。常见的报文格式有两种方法#xff0c;一种是发送端把要发送的报文长度预先通过报文告知给接收端#xff1b;另一种是通过一些特殊的字符来进行边界的划分。 这篇文章中讲的是发送报文长度的方法。报文类型如下#xff1a; 第一部分…报文格式最重要的是如何确定报文的边界。常见的报文格式有两种方法一种是发送端把要发送的报文长度预先通过报文告知给接收端另一种是通过一些特殊的字符来进行边界的划分。 这篇文章中讲的是发送报文长度的方法。报文类型如下 第一部分是4个字节大小的消息长度其目的是将真正发送的字节流的大小显式通过报文告知接收端第二部分是 4 个字节大小的消息类型第2部分才是真正需要发送的数据。 发送端 readnMessageByLength.c里边的代码如下 #includestdio.h #includestdlib.h #includestring.h #includeunistd.h #includearpa/inet.h #includesys/socket.h #includeerrno.h #includesyslog.h #includesignal.h size_t readn(int fd, void *buffer, size_t length); size_t read_message(int fd, char *buffer, size_t length);static int count;static void sig_int(int signo) {printf(\nreceived %d datagrams\n, count);exit(0); }int main(int argc, char **argv) {if (argc ! 2) {printf(usage: select01 IPaddress or Port\n);}int listenfd;listenfd socket(AF_INET, SOCK_STREAM, 0);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_porthtons(atoi(argv[1]));int on 1;setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, on, sizeof(on));int rt1 bind(listenfd, (struct sockaddr *) server_addr, sizeof(server_addr));if (rt1 0) {printf(bind failed);exit(errno);}int rt2 listen(listenfd, 5);if (rt2 0) {printf(listen failed);exit(errno);}signal(SIGPIPE, SIG_IGN);int connfd;struct sockaddr_in client_addr;socklen_t client_len sizeof(client_addr);if ((connfd accept(listenfd, (struct sockaddr *) client_addr, client_len)) 0) {printf(bind failed);exit(errno);}char buf[128];count 0;while (1) {int n read_message(connfd, buf, sizeof(buf));if (n 0) {printf(error read message\n);exit(errno);} else if (n 0) {printf(client closed \n);exit(0);}buf[n] 0;printf(received %d bytes: %s\n, n, buf);count;}exit(0);}size_t readn(int fd, void *buffer, size_t length) {size_t count;ssize_t nread;char *ptr;ptr buffer;count length;while (count 0) {nread read(fd, ptr, count);if (nread 0) {if (errno EINTR)continue;elsereturn (-1);} else if (nread 0)break; /* EOF */count - nread;ptr nread;}return (length - count); /* return 0 */ }size_t read_message(int fd, char *buffer, size_t length) {u_int32_t msg_length;u_int32_t msg_type;int rc;rc readn(fd, (char *) msg_length, sizeof(u_int32_t));if (rc ! sizeof(u_int32_t))return rc 0 ? -1 : 0;msg_length ntohl(msg_length);rc readn(fd, (char *) msg_type, sizeof(msg_type));if (rc ! sizeof(u_int32_t))return rc 0 ? -1 : 0;if (msg_length length) {return -1;}rc readn(fd, buffer, msg_length);if (rc ! msg_length)return rc 0 ? -1 : 0;return rc; }gcc readnMessageByLength.c -o readnMessageByLength编译./readnMessageByLength 8080运行。 接收端 SendMessageByLength.c里边的代码如下 #includestdio.h #includestdlib.h #includestring.h #includeunistd.h #includearpa/inet.h #includesys/socket.h #includeerrno.h #includesyslog.h #includesignal.h int main(int argc, char **argv) {if (argc ! 3) {printf(usage: tcpclient IPaddress\n);exit(errno);}int socket_fd;socket_fd socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in server_addr;bzero(server_addr, sizeof(server_addr));server_addr.sin_family AF_INET;server_addr.sin_port htons(atoi(argv[2]));;inet_pton(AF_INET, argv[1], server_addr.sin_addr);socklen_t server_len sizeof(server_addr);int connect_rt connect(socket_fd, (struct sockaddr *) server_addr, server_len);if (connect_rt 0) {fprintf(stderr, error in connect: %s (%d)\n, strerror(errno), errno);exit(errno);}struct {u_int32_t message_length;u_int32_t message_type;char buf[128];} message;int n;while (fgets(message.buf, sizeof(message.buf), stdin) ! NULL) {n strlen(message.buf);message.message_length htonl(n);message.message_type 1;if (send(socket_fd, (char *) message, sizeof(message.message_length) sizeof(message.message_type) n, 0) 0){fprintf(stderr, error in send: %s (%d)\n, strerror(errno), errno);exit(errno);}}exit(0); }gcc SendMessageByLength.c -o SendMessageByLength编译./SendMessageByLength 127.0.0.1 8080运行。
http://www.huolong8.cn/news/3649/

相关文章:

  • 怎么在网上注册自己的网站哪个网站做推广效果好
  • 虚拟主机网站建设步骤?怎么在网上做推广
  • sql做网站后台广西执业药师培训网站
  • 云虚拟主机建设网站一定要域名科技文化网站建设方案
  • 公司 宜宾网站建设wordpress分页无效
  • 常见的微网站平台有哪些需要个网站
  • 鄂州网站建设多语种网站建设公司
  • 网站开发模块就业前景wordpress 整合
  • 怎样做微商网站零基础网络工程师培训
  • 南昌网站建设哪家比较好网站推广公司ihanshi
  • 做网站维护价格企业网站建设实训体会
  • 专业做外贸网站的公司wordpress安装为什么是英文版
  • 网站结构佛山品牌网站建设报价
  • 做哪一类网站能赚钱服装设计网页制作素材
  • 颜色调配网站海南跨境电商平台有哪些
  • 简单美食网站模板工地招聘网站
  • 网站建设php昆明企业网站建设
  • 章贡区建设局网站设计师必去十大网站
  • 如何建立网站快捷链接wordpress多功能主题 cosy
  • 视频网站不赚钱为什么还做应用商店下载入口
  • 个人盈利网站怎么建立wordpress 详情页
  • 建设网站500错误做网站人员配置
  • wordpress更改后台路径重庆排名seo公司
  • 网站流量查询平台品划网络做营销型网站
  • 网站的建站标准学做网站初入门教程
  • 24小时24元网站建设网络推广服务合同范本
  • 广州网站建设网站优化网站推广网站建设与管理报告
  • 兰州门户网站建设汕头百度seo在哪里
  • 专业做w7系统的网站简洁大气企业网站
  • 沈阳企业网站怎样制作WordPress更改admin