服务器端
(1)创建socket,使用socket函数
(2)准备通信地址,使用结构体类型
(3)绑定socket和通信地址,使用bind函数
(4)进行监听,使用listen函数
(5)响应客户端的连接请求,使用accept函数
(6)进行通信,使用read/write函数
(7)关闭socket,使用close函数

例子:

//基于socket的本地通信
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
int main()
{
//1.创建socket,使用socket函数
int sockfd=socket(AF_UNIX,SOCK_DGRAM,0);//本地通信/数据报
if(-1==sockfd)
{
perror("socket"),exit(-1);
}
printf("创建socket成功\n");
//2.准备通信地址,使用结构体类型
struct sockaddr_un addr;
addr.sun_family=AF_UNIX;
strcpy(addr.sun_path,"a.sock");
//3.绑定socket和通信地址,使用bind函数
int res=bind(sockfd,(struct sockaddr*)&addr,sizeof(addr));
if(-1==res)
{
perror("bind"),exit(-1);
}
printf("绑定成功\n");
//4.进行通信,使用read/write函数
char buf[100]={0};
res=read(sockfd,buf,sizeof(buf));
if(-1==res)
{
perror("read"),exit(-1);
}
printf("读取客户端发来的数据是:%s,数据大小是:%d\n",buf,res);
//5.关闭socket,使用close函数
close(sockfd);
return 0;
}

客户端
(1)创建socket,使用socket函数
(2)准备通信地址,使用结构体类型(服务器的地址)
(3)连接socket和通信地址,使用connect函数
(4)进行读写操作,使用read/write函数

(5)关闭socket,使用close函数

例子:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/un.h>
#include <sys/socket.h>
#include <string.h>
int main()
{
//1.创建socket,使用socket函数
int sockfd=socket(AF_UNIX,SOCK_DGRAM,0);//本地通信/数据报
if(-1==sockfd)
{
perror("socket"),exit(-1);
}
printf("创建socket成功");
//2.准备通信地址,使用结构体类型
struct sockaddr_un addr;
addr.sun_family=AF_UNIX;
strcpy(addr.sun_path,"a.sock");
//3.绑定socket和通信地址,使用connect函数
int res=connect(sockfd,(struct sockaddr*)&addr,sizeof(addr));
if(-1==res)
{
perror("connect"),exit(-1);
}
printf("连接服务器成功\n");
//4.进行通信,使用write函数
res=write(sockfd,"hello",5);
if(-1==res)
{
perror("write"),exit(-1);
}
printf("发送给服务器的数据成功,数据大小是:%d\n",res);
//5.关闭socket,使用close函数
close(sockfd);
return 0;
}

基于TCP协议的通信模型相关推荐

  1. java socket发送定长报文_一个基于TCP协议的Socket通信实例

    原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...

  2. 基于TCP协议网上聊天程序(python)带界面

    基于TCP协议网上聊天程序(python)带界面 1 设计目标 基于TCP协议网上聊天程序 实现一简单的聊天程序实现网上聊天,包括服务器和客户端. (1)支持多人聊天: (2)客户端具有图形化用户界面 ...

  3. 用C#实现基于TCP协议的网络通讯

    TCP协议是一个基本的网络协议,基本上所有的网络服务都是基于TCP协议的,如HTTP,FTP等等,所以要了解网络编程就必须了解基于TCP协议的编程.然而TCP协议是一个庞杂的体系,要彻底的弄清楚它的实 ...

  4. MFC基于TCP协议的CSocket类套接字服务器端代码示范

    MFC基于TCP协议的CSocket类套接字服务器端代码示范 https://blog.csdn.net/txwtech/article/details/93417667 转载于:https://ww ...

  5. 基于 tcp协议完成的上传下载

    ps: 下面两个版本全部是 基于 tcp协议完成的. 简单版(无注释): 服务器(server)代码: from socket import socket sk = socket() sk.bind( ...

  6. 网络编程应用:基于TCP协议【实现对象传输】--练习

    要求: 基于TCP协议实现,客服端向服务器发送一个对象 服务器接受并显示用户信息 ,同时返回给客户端 "数据已收到"建一个Student类,属性:name age Student类 ...

  7. 网络编程应用:基于TCP协议【实现文件上传】--练习

    要求: 基于TCP协议实现一个向服务器端上传文件的功能 客户端代码: package Homework2;import java.io.File; import java.io.FileInputSt ...

  8. 网络编程应用:基于TCP协议【实现一个聊天程序】

    要求: 基于TCP协议实现一个聊天程序,客户端发送一条数据,服务器端发送一条数据 客户端代码: package Homework1;import java.io.IOException; import ...

  9. python 网络编程 套接字的初使用 基于TCP协议的socket

    文章目录 基于TCP协议的socket server端 client端 尝试启动 基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 # ...

最新文章

  1. 2022-2028年中国香精香料行业投资分析及前景预测报告
  2. 从HP发布BSM新版套件看网管与安管的融合
  3. .net开发框架比较
  4. ffmepg4 解码特别慢
  5. 查找_排序_思维导图
  6. UIRefreshControl使用总结
  7. Combinations leetcode java
  8. Bug整理——阿里Ons高版本引入后Spring项目不打印日志问题
  9. 准备树莓派下的模块开发环境
  10. mysql 5.6.10 32_安装mysql-5.6.10-win32 解压版-略有修改
  11. 【牛客 - 370F】Rinne Loves Edges(树,统计dp)
  12. 面试:C++实现访问者模式
  13. java设计模式4-装饰者模式
  14. 南方cass字体样式设置_cass改变字体格式 cass字体样式管理器
  15. 笔记本电脑配置知识大全
  16. java疯狂讲义 摘录
  17. 【解决方案】智慧机场:基于视频智能融合平台EasyCVR让机场数字化转型高飞
  18. python生成图片验证码
  19. java页面左右飘窗_左右飘窗代码研读
  20. Oracle LOB

热门文章

  1. 自定义控件 - 流式布局:TagFlowLayout
  2. openssl https 单向认证连接成功示例
  3. 创客运动引发第三次工业革命
  4. [译]怎样用HTML5 Canvas制作一个简单的游戏
  5. 在PowerDesigner中设置字段唯一约束 --相当于unique
  6. win10 安装 tensorflow gpu 版
  7. 学习笔记 Keras:常见问题
  8. LIBSVM的使用方法以及参数注释总结
  9. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170327
  10. python嵌套字典代码_python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)