当前位置: 首页 > 编程笔记 >

C#实现Socket通信的解决方法

景俊拔
2023-03-14
本文向大家介绍C#实现Socket通信的解决方法,包括了C#实现Socket通信的解决方法的使用技巧和注意事项,需要的朋友参考一下

本文以实例详述了C#实现Socket通信的解决方法,具体实现步骤如下:

1、首先打开VS新建两个控制台应用程序:
ConsoleApplication_socketServer和ConsoleApplication_socketClient。
 
2、在ConsoleApplication_socketClient中输入以下代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Net; 
using System.Net.Sockets; 
 
namespace ConsoleApplication_socketClient 
{ 
  class Program 
  { 
    static Socket clientSocket; 
    static void Main(string[] args) 
    { 
      //将网络端点表示为IP地址和端口 用于socket侦听时绑定  
      IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("*.*.*.*"), 3001); //填写自己电脑的IP或者其他电脑的IP,如果是其他电脑IP的话需将ConsoleApplication_socketServer工程放在对应的电脑上。 
      clientSocket = new Socket(ipep.AddressFamily,SocketType.Stream,ProtocolType.Tcp);  
      //将Socket连接到服务器  
      try 
      { 
        clientSocket.Connect(ipep); 
        String outBufferStr; 
        Byte[] outBuffer = new Byte[1024]; 
        Byte[] inBuffer = new Byte[1024]; 
        while (true) 
        { 
          //发送消息  
          outBufferStr = Console.ReadLine(); 
          outBuffer = Encoding.ASCII.GetBytes(outBufferStr); 
          clientSocket.Send(outBuffer, outBuffer.Length, SocketFlags.None); 
           
          //接收服务器端信息        
          clientSocket.Receive(inBuffer, 1024, SocketFlags.None);//如果接收的消息为空 阻塞 当前循环 
          Console.WriteLine("服务器说:"); 
          Console.WriteLine(Encoding.ASCII.GetString(inBuffer)); 
        } 
      } 
      catch 
      { 
        Console.WriteLine("服务未开启!"); 
        Console.ReadLine(); 
      } 
    } 
  } 
} 

3、在ConsoleApplication_socketServer中输入以下代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Net; 
using System.Net.Sockets; 
using System.Threading; 
 
namespace ConsoleApplication_socketServer 
{ 
  class Program 
  { 
    static Socket serverSocket; 
    static Socket clientSocket; 
    static Thread thread; 
    static void Main(string[] args) 
    { 
      IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 3001); 
      serverSocket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp); 
      serverSocket.Bind(ipep); 
      serverSocket.Listen(10); 
      while (true) 
      { 
        clientSocket = serverSocket.Accept(); 
        thread = new Thread(new ThreadStart(doWork)); 
        thread.Start(); 
      } 
    } 
    private static void doWork() 
    { 
      Socket s = clientSocket;//客户端信息 
      IPEndPoint ipEndPoint = (IPEndPoint)s.RemoteEndPoint; 
      String address = ipEndPoint.Address.ToString(); 
      String port = ipEndPoint.Port.ToString(); 
      Console.WriteLine(address + ":" + port + " 连接过来了"); 
      Byte[] inBuffer = new Byte[1024]; 
      Byte[] outBuffer = new Byte[1024]; 
      String inBufferStr; 
      String outBufferStr; 
      try 
      { 
        while (true) 
        { 
          s.Receive(inBuffer, 1024, SocketFlags.None);//如果接收的消息为空 阻塞 当前循环 
          inBufferStr = Encoding.ASCII.GetString(inBuffer); 
          Console.WriteLine(address + ":" + port + "说:"); 
          Console.WriteLine(inBufferStr); 
          outBufferStr = Console.ReadLine(); 
          outBuffer = Encoding.ASCII.GetBytes(outBufferStr); 
          s.Send(outBuffer, outBuffer.Length, SocketFlags.None); 
        } 
      } 
      catch 
      { 
        Console.WriteLine("客户端已关闭!"); 
      } 
    } 
  } 
} 
 

4、先运行ConsoleApplication_socketServer,后运行ConsoleApplication_socketClient就可以通信了。

本例给出了基本的实现代码,读者可以根据自身的需求进一步完成个性化功能。

 类似资料:
  • 本文向大家介绍python实现简单socket通信的方法,包括了python实现简单socket通信的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现简单socket通信的方法。分享给大家供大家参考,具体如下: 刚刚开始接触python,实现了一个helloworld程序---关于udp协议的socket通信demo。 首先服务端这边的实现如下: 其中,host置为空,

  • 本文向大家介绍详解C# Socket异步通信实例,包括了详解C# Socket异步通信实例的使用技巧和注意事项,需要的朋友参考一下 TCPServer  1、使用的通讯通道:socket 2、用到的基本功能: ①Bind, ②Listen, ③BeginAccept ④EndAccept ⑤BeginReceive  ⑥EndReceive 3、函数参数说明 新建socket所使用的参数均为系统预

  • 本文向大家介绍C#中Socket通信用法实例详解,包括了C#中Socket通信用法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中Socket通信用法。分享给大家供大家参考。具体如下: 一、UDP方式: 服务器端代码: 客户端代码: 二、TCP方式: 服务器端代码: 客户端代码: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍python3利用Socket实现通信的方法示例,包括了python3利用Socket实现通信的方法示例的使用技巧和注意事项,需要的朋友参考一下 参考于: python cs架构实现简单文件传输 原文中程序运行有误,在此做修改与解释,如下: 功能说明: 共2个py文件分别为server和client端,采用socket进行通信。提供两种功能:“dir“ 命令用于显示服务器端可下载文件

  • 本文向大家介绍Python socket 套接字实现通信详解,包括了Python socket 套接字实现通信详解的使用技巧和注意事项,需要的朋友参考一下 首先:我们介绍一下socket什么是socket: 1. socket 在操作系统中它是处于应用层与传输层的抽象层,它是一组操作起来非常简单的接口(接收数据的),此接口接受数据之后交个操作系统 那么为什么?直接给操作系统不是更方便吗?那么你就想

  • 本文向大家介绍C#的Socket实现UDP协议通信示例代码,包括了C#的Socket实现UDP协议通信示例代码的使用技巧和注意事项,需要的朋友参考一下 今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础。众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层——传输层。与TCP协议同层,都是提供信息的传输服务,但与TCP最