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

好久没有写过博客了,最近因项目需求,需要用到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 发送&接收&返回 简单应用实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C#使用Socket发送和接收TCP数据实例

    本文实例讲述了Asp.net中C#使用Socket发送和接收TCP数据的方法,分享给大家供大家参考.具体实现方法如下: 具体程序代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; namespace ConsoleApplication1 {     public static class So

  • c# socket网络编程接收发送数据示例代码

    代码分2块,server端: 复制代码 代码如下: class Program    {        static void Main(string[] args)        {            TcpListener lsner = new TcpListener(9000);            lsner.Start();            Console.WriteLine("started in port: 9000");            while

  • C#使用Socket实现发送和接收图片的方法

    本文实例讲述了C#使用Socket实现发送和接收图片的方法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Net; using System.IO; namespace ConsoleApplication1 { Class Program { static void Main (String[]

  • c#使用Socket发送HTTP/HTTPS请求的实现代码

    C# 自带的HttpWebRequest效率太低,对于自组HTTP封包不好操作. 在写超级SQL注入工具时,研究了很长一段时间如何使用Socket来发送HTTP.HTTPS请求. 经过一年的修改和测试,可完美.高效发送并解析HTTP/HTTPS请求.修改过无数次bug. 在这里把核心代码分享出来,供大家学习或做开发参考. 用这个代码写了一个简单的HTTP发包工具.供大家参考. 工具下载: HTTPTool.rar 核心类:HTTP.cs using System; using System.Co

  • C#简单实现发送socket字符串

    本文实例为大家分享了C#简单发送socket字符串的实现方法,供大家参考,具体内容如下 1 打开VS,新建一个C#窗口程序 2 添加按钮 3 写按钮的事件代码 双击这个按钮 进入代码界面 输入如下内容,注意IP和端口 private void button1_Click(object sender, EventArgs e) { String string1 = "测试数据123测试数据ABC"; byte[] buffer = new byte[2048]; buffer = Enc

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

    好久没有写过博客了,最近因项目需求,需要用到Socket来进行通信,简单写了几个例子,记录一下,代码很简单,无非就是接收与发送,以及接收到数据后返回一个自定义信息,也可以定义为发送. 接收端因为需求要监听某个端口,则在一开始判断一下,要使用的端口是否被占用,定义一个处理方法,以下为处理代码: public static bool PortIsUse(int port) { bool isUse = false; IPGlobalProperties ipProperties = IPGlobal

  • jquery的ajax异步请求接收返回json数据实例

    jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发送设置的datatype设置为jsonp格式数据或json格式都可以. 代码示例如下: 复制代码 代码如下: $('#send').click(function () {     $.ajax({         type : "GET",         url : "a.php",         dataType : "json

  • Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法

    本文实例讲述了Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package mysocket    import (      "fmt"      "io"      "net"  )    func MySocketBase() {      var (          host   = "www.apache.org"         

  • java使用Socket类接收和发送数据

    网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据.在本文及后面的数篇文章中将详细讨论Socket类的使用,内容包括Socket类基础.各式各样的连接方式.get和set方法.连接过程中的超时以及关闭网络连接等. 在本文中,我们将讨论使用Socket类的基本步骤和方法.一般网络客户端程序在连接服务程序时要进行以下三步操作. 连接服务器 发送和接收数据 关闭网络连接 一.连接服务器 在

  • Java NIO实例UDP发送接收数据代码分享

    Java的NIO包中,有一个专门用于发送UDP数据包的类:DatagramChannel,UDP是一种无连接的网络协议, 一般用于发送一些准确度要求不太高的数据等. 完整的服务端程序如下: public class StatisticsServer { //每次发送接收的数据包大小 private final int MAX_BUFF_SIZE = 1024 * 10; //服务端监听端口,客户端也通过该端口发送数据 private int port; private DatagramChann

  • php 利用socket发送GET,POST请求的实例代码

    作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步.最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益匪浅.希望分享给大家.本文需要有一定http基础的开发者阅读. 今天给大家带来的是如何利用socket发送GET,POST请求.我借用燕十八老师封装好的一个Http类给进行说明. 在日常编程中相信很多人和我一样大部分时间是利用浏览器向服务器提出GET,POST请求,那么可否利用其它方式提出GET,POST请求呢?答案必然是肯定的.了解过HTT

  • Android启动内置APK和动态发送接收自定义广播实例详解

    Android启动内置APK和动态发送接收自定义广播实例详解 工作中遇到这样一个需求,需要为按键添加一个亲情号,提供一个接口启动内置的APK,思考再三决定更改Framework,利用广播机制去实现. 一.代码动态自主启动内置APK 我们都知道Android系统为我们提供了很多服务管理类,PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息并构建Intent,启动对应的应用.除此之外Android还未我们提供了一些对应的类来管理相关的xml文件,比如说可以通过Packag

  • JavaWeb实现邮件发送接收功能实例解析

    一.邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu.163等等他们都有自己的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. 电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个账户,用户在邮件服务器上申请了一个

  • Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

    本文实例讲述了Python 网络编程之UDP发送接收数据功能.分享给大家供大家参考,具体如下: demo.py(UDP发送数据): import socket # 导入socket模块 def main(): # 创建一个udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定本机ip和端口号 (发送数据时,如果不绑定,系统会随机分配端口号.接收数据时,一般需要手动绑定ip和端口) udp_socket.b

随机推荐