好久没有写过博客了,最近因项目需求,需要用到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 发送&接收&返回 简单应用实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍C#简单实现发送socket字符串,包括了C#简单实现发送socket字符串的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#简单发送socket字符串的实现方法,供大家参考,具体内容如下 1 打开VS,新建一个C#窗口程序 2 添加按钮 3 写按钮的事件代码 双击这个按钮 进入代码界面 输入如下内容,注意IP和端口 如果你是复制的,会发现有标红的地方,这些需要使用u
本文向大家介绍C#使用Socket实现发送和接收图片的方法,包括了C#使用Socket实现发送和接收图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用Socket实现发送和接收图片的方法。分享给大家供大家参考。具体如下: 客户端接收和保存图片的代码如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍Android创建简单发送和接收短信应用,包括了Android创建简单发送和接收短信应用的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android创建发送和接收短信应用的简单实现过程,供大家参考,具体内容如下 一、接收短信 项目的结构如下:一个简单的接收和发送短信的功能 1、定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.pro
问题内容: 这是我第一次在任何应用程序中使用JSON 和。我的应用程序应该将JSON有效负载(类似于以下内容)发送到身份验证服务器: 为了创建此有效负载,我使用了库。如何将这些数据发送到身份验证服务器并接收其JSON响应?这是一些示例中看到的内容,但没有JSON内容: 但是,这似乎与使用我过去使用的其他语言相比有很多代码缺陷。我这样做正确吗?以及如何获取JSON响应以进行解析? 谢谢,精英。 更新
问题内容: 谁能给我展示一个Java实例来从DatagramSocket接收数据并通过Multicast Socket发送相同的数据 问题答案: 发送多播数据报 为了用Java发送任何类型的数据报,无论是单播,广播还是多播,都需要一个: 可以选择将本地端口提供给套接字必须绑定到的DatagramSocket构造函数。仅当一个人需要其他方能够在特定港口与我们联系时才需要这样做。第三个构造函数获取要绑
本文向大家介绍C#微信开发之接收 / 返回文本消息,包括了C#微信开发之接收 / 返回文本消息的使用技巧和注意事项,需要的朋友参考一下 接收 / 返回文本消息 ①接收/返回文本消息原理说明 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,着手开发之前先行阅读微信公众平台接收普通消息微信开发文档,对微信的这种消息处理机制有一定了解之后再着手开发(微信开