C# Socket 发送&接收&返回 简单应用实例

 更新时间:2020年6月25日 11:17  点击:2081

好久没有写过博客了,最近因项目需求,需要用到Socket来进行通信,简单写了几个例子,记录一下,代码很简单,无非就是接收与发送,以及接收到数据后返回一个自定义信息,也可以定义为发送。

接收端因为需求要监听某个端口,则在一开始判断一下,要使用的端口是否被占用,定义一个处理方法,以下为处理代码:

public static bool PortIsUse(int port)
  {
   bool isUse = false;
   IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
   IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();//找到已用端口
   foreach (IPEndPoint endPoint in ipEndPoints)
   {
    if (endPoint.Port == port)//判断是否存在
    {
     isUse= true;
     break;
    }
   }
   return isUse;
  }

定义接收端:

TcpListener tcpl = new TcpListener(new IPAddress(new byte[] { 127, 0, 0, 1 }), 1111);//定义一个TcpListener对象监听本地的1111端口
   tcpl.Start();//监听开始
   while (true)
   {
    Socket s = tcpl.AcceptSocket();//挂起一个Socket对象
    string remote = s.RemoteEndPoint.ToString();//获取发送端的IP及端口转为String备用
    Byte[] stream = new Byte[1024];
    s.Receive(stream);//接收发送端发过来的数据,写入字节数组
    //BGW_Handle.ReportProgress(1, "接收来自[" + remote + "]信息");
    string _data = Encoding.UTF8.GetString(stream);//将字节数据数组转为String
    s.Send(stream);//将接收到的内容,直接返回接收端
    s.Shutdown(SocketShutdown.Both);
   }
   tcpl.Stop();//停止监听

 定义发送端代码:

IPAddress ip = IPAddress.Parse("127.0.0.1");//接收端所在IP
   IPEndPoint ipEnd = new IPEndPoint(ip, 1111);//接收端所监听的接口
   Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//初始化一个Socket对象
   try
   {
    socket.Connect(ipEnd);//连接指定IP&端口
   }
   catch (SocketException e)
   {
    Console.WriteLine("连接失败");
    Console.WriteLine(e.ToString());
    return;
   }
   socket.Send(Encoding.UTF8.GetBytes("1234567890"));//发送数据
   while (true)//定义一个循环接收返回数据
   {
    byte[] data = new byte[1024];
    socket.Receive(data);//接收返回数据
    string stringData = Encoding.UTF8.GetString(data);
    if (!string.IsNullOrWhiteSpace(stringData))
    {
     Console.Write(stringData);
     break;
    }
   }29    socket.Shutdown(SocketShutdown.Both);
   socket.Close();//关闭Socket

从上面代码来看,还是很简单的,这也要归功于微软所做的工作,以上代码若有错误之处可在评论里提出来。

这篇C# Socket 发送&接收&返回 简单应用实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • mybatis-plus 返回部分字段的解决方式

    这篇文章主要介绍了mybatis-plus 返回部分字段的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-02
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • NodeJS实现阿里大鱼短信通知发送

    本文给大家介绍的是nodejs实现使用阿里大鱼短信API发送消息的方法和代码,有需要的小伙伴可以参考下。...2016-01-20
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • 详解JS WebSocket断开原因和心跳机制

    这篇文章主要介绍了JS WebSocket断开原因和心跳机制,对websocket感兴趣的同学,可以参考下...2021-05-08
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • C#实现Socket通信的解决方法

    这篇文章主要介绍了C#实现Socket通信的解决方法,需要的朋友可以参考下...2020-06-25
  • 详解C# Socket异步通信实例

    本篇文章主要介绍了C# Socket异步通信,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • c# 实现发送邮件的功能

    这篇文章主要介绍了c# 如何实现发送邮件的功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • C# Socket的TCP通讯的实例代码

    本篇文章主要介绍了C# Socket的TCP通讯,socket通讯方式有两种:同步和异步,详细的介绍了这两种方法,有兴趣的可以了解一下。...2020-06-25
  • python使用socket高效传输视频数据帧(连续发送图片)

    本文主要介绍了python使用socket高效传输视频数据帧(连续发送图片),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-23
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • C语言中send()函数和sendto()函数的使用方法

    这篇文章主要介绍了C语言中send()函数和sendto()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • JS如何实现基于websocket的多端桥接平台

    我们在调试过程使用的工具有:modheader,postman等,但这些工具都会存在的问题:缺少客户端里相应的设备信息;即使将cookie信息复制出来,也是存在过期的问题;多个设备之间切换时不方便;针对这些存在的问题,我基于websocket双向通信的特点,实现了多端桥接管理平台...2021-05-15
  • nestjs返回给前端数据格式的封装实现

    这篇文章主要介绍了nestjs返回给前端数据格式的封装实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • C# 实现WebSocket服务端教程

    这篇文章主要介绍了C# 实现WebSocket服务端教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-08
  • php stream_get_meta_data返回值

    测试代码如下:复制代码 代码如下:<?php$fp=fopen("http://www.sina.com.cn", 'r');$stream_meta = stream_get_meta_data($fp);print_r($stream_meta);?>在我本机输出如下:Array( [wrapper_data] => Array...2013-10-04
  • python实现企业微信定时发送文本消息的实例代码

    这篇文章主要介绍了python实现企业微信定时发送文本消息的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-25
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30