udp服务器

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/ip.h>
//#include <stdio.h>
#define ERR(msg) do{\fprintf(stderr,"%d",__LINE__);\perror("msg");\
}while(0);
int main(int argc, const char *argv[])
{int sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd<0){ERR("socket");return 0;}//绑定struct sockaddr_in md;md.sin_family=AF_INET;md.sin_port=htons(8888);md.sin_addr.s_addr=inet_addr("192.168.8.3");int asd=bind(sfd,(struct sockaddr*)&md,sizeof(md));if(asd<0){ERR("bind");return 0;}//接收char c[128]="";struct sockaddr_in sd;ssize_t rad;socklen_t arrlen=sizeof(sd);while(1){bzero(c,sizeof(c));rad=recvfrom(sfd,c,sizeof(c),0,(struct sockaddr*)&sd,&arrlen);if(rad<0){ERR("recvfrom");return 0;}else if(0==rad){printf("对端关闭\n");break;}printf("%d %ld %s\n",sfd,rad,c);//发送strcat(c,"*_*");rad=sendto(sfd,c,sizeof(c),0,(struct sockaddr*)&sd,arrlen);if(rad<0){ERR("sendto");return 0;}else if(0==rad){printf("对端关闭\n");break;}}close(sfd);return 0;
}``udp客户端

在这里插#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/ip.h>
//#include <stdio.h>
#define ERR(msg) do{
fprintf(stderr,“%d”,LINE);
perror(“msg”);
}while(0);
int main(int argc, const char *argv[])
{
int sfd=socket(AF_INET,SOCK_DGRAM,0);
if(sfd<0){
ERR(“socket”);
return 0;
}
struct sockaddr_in md;
md.sin_family=AF_INET;
md.sin_port=htons(8888);
md.sin_addr.s_addr=inet_addr(“192.168.8.3”);

 char c[128]="";ssize_t rad;socklen_t arrlen=sizeof(md);while(1){printf("请输入>>>");bzero(c,sizeof(c));//发送fgets(c,sizeof(c),stdin);c[strlen(c)-1]='\0';rad=sendto(sfd,c,sizeof(c),0,(struct sockaddr*)&md,arrlen);if(rad<0){ERR("recvfrom");return 0;}else if(0==rad){printf("对端关闭\n");break;}//接收rad=recvfrom(sfd,c,sizeof(c),0,(struct sockaddr*)&md,&arrlen);if(rad<0){ERR("recvfrom");return 0;}else if(0==rad){printf("对端关闭\n");break;}printf("%s\n",c);}close(sfd);
return 0;

}
入代码片

TCP服务器

在这里#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>
//#include <stdio.h>
#define EER(mgs) do{
fprintf(stderr,“%d”,LINE);
perror(“mgs”);
}while(0)
int main(int argc, const char argv[])
{
int sfd=socket(AF_INET,SOCK_STREAM,0);
if(sfd<0){
EER(“socket”);
return 0;
}
int reuse = 1;
if(setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &reuse ,sizeof(reuse)) < 0)
{
EER(“setsockopt”);
return -1;
}
printf(“允许端口快速重用\n”);
struct sockaddr_in md;
md.sin_family=AF_INET;
md.sin_port=htons(8888);
md.sin_addr.s_addr=inet_addr(“192.168.8.3”);
if(bind(sfd,(struct sockaddr
)&md,sizeof(md))<0){
EER(“bind”);
return 0;
}
if(listen(sfd,128)<0){
EER(“listen”);
return 0;
}
struct sockaddr_in cin;
socklen_t addrlen=sizeof(cin);
int sd=accept(sfd,(struct sockaddr*)&cin,&addrlen);
if(sd<0){
EER(“accept”);
return 0;
}
printf(“连接成功\n”);
//接收
ssize_t red;
char c[128]=“”;
while(1){
bzero(c,sizeof©);
red=recv(sd,c,sizeof©,0);
if(red<0){
EER(“recv”);
return 0;
}else if(0==red){
printf(“客户端关闭\n”);
break;
}
printf(“666\n”);
printf(“%d %ld %s\n”,sd,red,c);
//发送
strcat(c,“_”);
red=send(sd,c,sizeof©,0);
if(red<0){
EER(“send”);
return 0;
}

}close(sd);
close(sfd);
return 0;

}
插入代码片

TCP服务器

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>
//#include <stdio.h>
#define EER(mgs) do{
fprintf(stderr,“%d”,LINE);
perror(“mgs”);
}while(0)
int main(int argc, const char argv[])
{
int sfd=socket(AF_INET,SOCK_STREAM,0);
if(sfd<0){
EER(“socket”);
return 0;
}
struct sockaddr_in sin;
sin.sin_family = AF_INET; //必须填AF_INET;
sin.sin_port = htons(8888); //服务器绑定的端口
sin.sin_addr.s_addr = inet_addr(“192.168.8.3”); //服务器
//连接服务器
if(connect(sfd, (struct sockaddr
)&sin, sizeof(sin)) < 0)
{
EER(“connect”);
return -1;
}
printf(“connect success\n”);

ssize_t res = 0;
char buf[128] = "";
while(1)
{bzero(buf, sizeof(buf));//发送printf("请输入>>>");fgets(buf, sizeof(buf), stdin);buf[strlen(buf)-1] = 0;if(send(sfd, buf, sizeof(buf), 0) < 0){EER("sen");return -1;}printf("send success\n");//接收res = recv(sfd, buf, sizeof(buf), 0);if(res < 0){EER("recv");return -1;}else if(0 == res){printf("服务器断开连接\n");break;}printf(":%s\n", buf);}return 0;

}


TCP与UDP服务器和客户端的搭建相关推荐

  1. Linux下编写UDP/TCP版本的服务器和客户端的流程

    Linux下编写UDP/TCP版本的服务器和客户端的流程 文章目录 Linux下编写UDP/TCP版本的服务器和客户端的流程 一:UDP和TCP的区别 二.UDP编写服务器的步骤 三.UDP编写客户端 ...

  2. Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正

    在Python核心编程(第3版)第2章网络编程中, 关于tcp/udp服务器和客户端实现代码的运行会出现 ['str' does not support the buffer interface]之类 ...

  3. TCP和UDP服务器性能测试工具

    TCP和UDP服务器性能测试工具 本文涉及工具不是本人开发,在网上免费下载的工具 在编写一个网络服务的时候都比较关心这个服务能达到多少并发连接,而在这连接的基础上又能达到一个怎样的交互能力.编写服务已 ...

  4. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

  5. c#基于socket的UDP服务器和客户端实例

    基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低.至于可靠性,可通过应用层的控制来满足.(不可靠连接) 使用Udp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) ...

  6. tcp ip协议 服务器和客户端区别,网络与TCP/IP协议-总结

    TCP/IP参考模型 层级               数据形式                      主要功能                                 协议(只标注较主要 ...

  7. TCP协议的服务器与客户端的程序设计(代码注释超详细)

    在上篇博客中讲到了三次握手和四次挥手: Linux网络编程--TCP中的三次握手和四次挥手_神厨小福贵!的博客-CSDN博客服务器编程和客户端编程的大致流程如下:三次握手是在客户端中的connect中 ...

  8. 【Java 网络编程】UDP 服务器 与 客户端持续交互 案例

    文章目录 I UDP 交互原理 II UDP 服务器端代码示例 III UDP 客户端代码示例 IV 服务器 客户端 运行结果 I UDP 交互原理 1. UDP 单播传输流程 : A 给 B 发送数 ...

  9. UDP服务器和客户端

    1  服务器端 代码: '''GUI MAIN''' import tkinter from tkinter import END, messagebox import os import time ...

最新文章

  1. winsock 函数声明大全
  2. python处理excel表格数据-零基础使用Python读写处理Excel表格的方法
  3. rails3和4获取当前url
  4. 大数问题(高精度运算)
  5. i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍
  6. Qt文档阅读笔记-Qt插件DECLARE_INTERFACE METADATA INTERFACES官方解析及实例
  7. vim关于python的自动补全插件
  8. form data怎么接收_VUE发送Formdata数据,NodeJS接收
  9. php设计模式 — 单例模式(singleton)
  10. 数据库基础知识(MySQL入门)
  11. ‘javah‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  12. 基于OpenCV实战:动态物体检测
  13. 运营到底是做什么的?
  14. #学习笔记 使用c语言来制作一个计算器
  15. The7主题安装教程Wordpress
  16. 使用canvas 画钟表
  17. 计算机不能上网的故障和解决办法,电脑无法上网的原因分析及解决办法
  18. 【ChinaDRM】符合ChinaDRM GY/T 277-2019标准的码流分析系统
  19. 【IoT】产品设计之思维模型:四种知识结构
  20. cout与cerr区别

热门文章

  1. 系统集成项目管理工程师答题卡样式
  2. 奇艺网视频站外调用的方法
  3. 【报告分享】新锐快消品出圈营销分析报告-云锐集团(附下载)
  4. 区块链不可能三角(一)--扩容、扩展、无限扩展
  5. [UVM]UVM Sequence之Response的使用
  6. Android第三方登陆之新浪微博Weibo篇(原生登陆授权)
  7. Matplotlib基本语法
  8. mailbox 编程_Ring的Mailbox Sensor是我测试过的书呆子智能家居小工具之一
  9. 3D光固化lcd树脂选购与光固化参数选择
  10. 最新下载精密轨道数据地址!