贴代码其实是没什么用的,关键还是要~  使用这个模块或者这个架构时的注意事项? 这个也是开发比较关注的东西

公司对于你的需求:高质量的实现他们需要的功能

你对公司的需求:事情稳定不出岔子,不要加班。有时间做自己想做的事情

所以你并不需要研究很深的理论,你只要找到稳定的库来使用。。。。。

https://blog.csdn.net/waisock2017/article/details/78448427

//server
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>typedef struct sockaddr SA;
int main(int argc,char **argv)
{int listenfd;    //也是以文件为操作,linux都是以文件为基础int confd;socklen_t clilen;struct sockaddr_in myaddr,cliaddr;char buf[50] = "Welcome";listenfd = socket(PF_INET,SOCK_STREAM,0)if(listenfd<0){perror("fail to connect");exit(-1);}//数据初始化bzero(&myaddr,sizeof(myaddr));myaddr.sin_family = PF_INET;myaddr.sin_addr.s_addr = inet_addr("192.168.1.1"); //ipmyaddr.sin_port = htons(8888); //端口号//绑定? 为什么要强制转换?if(bind(listenfd,(SA *)&myaddr,sizeof(myaddr))<0){perror("fail to bind");exit(-1);}listen(listenfd,5);while(1){confd = accept(listenfd,(SA *)&cliaddr,sizeof(cliaddr));printf("connection from %s,port %d\n",inet_ntoa(cliaddr.sin_addr),ntohs(cliaddr.sin_port));send(connfd,buf,sizeof(buf),0);close(connfd);}return 0;
}

//client

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>typedef struct sockaddr SA;
int main(int argc,char **argv)
{int sockfd,nbyte;struct sockaddr_in servaddr,myaddr;char buf[50];sockfd = socket(PF_INET,SOCK_STREAM,0);if(sockfd<0){perror("fail to connect\n");exit(-1);}memset(0,&servaddr,sizeof(servaddr));servaddr.sin_family = PE_INET;servaddr.sin_addr.s_addr = inet_addr("192.168.1.1");  //server ipservaddr.sin_port = htons(8888);if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))<0){perror("connect error");exit(-1);}if((nbyte = recv(sockfd,buf,50,0))<0){perror("fail to recv");exit(-1);}printf("recv from server:%s\n", buf);return 0;
}

主要就是一个结构体

struct sockaddr_in 以及几个函数的操作,对于超时网络异常等需要有异常的维护

转载于:https://www.cnblogs.com/asreg/p/7153569.html

【linux】web socket相关推荐

  1. 【linux】web服务器

    1/准备软件 cd /usr/local ftp 192.168.1.10 cd pub/course get apache-tomcat-7.0.27.tar.gz 2/确保jre环境可用 java ...

  2. 【Linux】DHCP、FTP、DNS、WEB服务器的配置过程

    [Linux]DHCP.FTP.DNS.WEB服务器的配置过程 要求 一.DHCP服务器配置过程 二.FTP服务器配置过程 三.DNS服务器配置过程 四.WEB服务器配置过程 要求 某企业有一个局域网 ...

  3. 【Linux】在Ubuntu上部署web项目(Ubuntu版本为16.04.7,jdk1.8、mysql5.7、tomcat9.0.48)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  4. 【Linux】socket网络编程之服务器与客户端的数据交互

    [Linux]socket网络编程之服务器与客户端的数据交互 前言参考 argc !=2是什么意思 inet pton函数 对stdin,stdout 和STDOUT_FILENO,STDIN_FIL ...

  5. 【Linux】Supervisor使用详解

    [Linux]Supervisor使用详解 一.supervisor简介 ​ Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程 ...

  6. 【Linux】网络基础(1)

    前言 相信没有网络就没有现在丰富的世界.本篇笔记记录我在Linux系统下学习网络基础部分知识,从关于网络的各种概念和关系开始讲起,逐步架构起对网络的认识,对网络编程相关的认知. 我的上一篇Linux文 ...

  7. 【Linux】一步一步学Linux——curl命令(193)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 curl命令是一个利用URL规则在shell终端命令行下工 ...

  8. 【Linux】一步一步学Linux——ssh-agent命令(181)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 ssh-agent命令是一种控制用来保存公钥身份验证所使用 ...

  9. 【Linux】一步一步学Linux——ss命令(170)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 ss命令用来显示处于活动状态的套接字信息.ss命令可以用来 ...

最新文章

  1. framework7使用笔记
  2. cors在服务器还是接口_cors
  3. 开源播放器 ijkplayer (四) :Ijkplayer切换网络时停止播放的问题处理
  4. Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
  5. 【BZOJ1572】【usaco 2009 open】工作安排job
  6. 路由选择协议笔记ripv1、ripv2、ripng
  7. 设计冲刺下载_如何运行成功的设计冲刺
  8. ensp查看历史配置命令_网络工程师 | 手把手教你用华为ensp模拟器玩vxlan实验(静态方式)...
  9. uniapp图片自适应_uni-app下input组件基于内容自适应宽度的实现
  10. ConcurrentHashMap 和 Collections.synchronizedMap(map) 比较
  11. docker探索-在centos6.5中安装docker(三)
  12. r语言入门与实践Linux,R 学习笔记《一》----R语言初学者指南
  13. 常用的计算机病毒检测方法有哪些,计算机病毒检测方法有哪些呢
  14. 《高仿支付宝运动轨迹七日曲线图》
  15. 快速上手UER-py
  16. python爬取搜狗微信指定关键词的全部内容
  17. 背水一战!华为正式起诉美国政府“销售限令违宪”
  18. 驰骋BPM系统-表单引擎-流程引擎2020年大换装
  19. 腐败团--刘一手火锅
  20. GitHub 热点速览 Vol.32:VScode 韭菜基金插件,极大提高“工作”效率

热门文章

  1. c++实现 :n进制两数相加模板
  2. 怎么看linux的命令说明,在linux下,怎么用命令来查看版本?
  3. 梦幻群侠传5帮派修炼_梦幻群侠传5唯美版
  4. 错误代码:1120 当前Hsql数据库已被另一线程锁定
  5. 【POJ3889】Fractal Streets(分形图)
  6. Python入门--函数的参数总结
  7. nginx反向代理模块配置详解_nginx反向代理配置详解
  8. java Map及其实现类的底层原理
  9. token详解及常见防范措施
  10. Unity3D基础33:物理射线