加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 05:43:54 所属栏目:百科 来源:网络整理
导读:本篇章节讲解C#使用Socket实现发送和接收图片的方法。供大家参考研究。具体如下: using System;using System.Collections.Generic;using System.Text;using System.Net.Sockets;using System.Net;using System.IO;namespace ConsoleApplication1{ C

本篇章节讲解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[] args)
    {
      // 1. to create a socket
      Socket sListen = new Socket (AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
      // 2. Fill IP
      IPAddress IP = IPAddress.Parse ("127.0.0.1");
      IPEndPoint IPE = new IPEndPoint (IP,4321);
      // 3. binding
      sListen.Bind (IPE);
      // 4. Monitor
      Console.WriteLine ("Service is listening ...");
      sListen.Listen (2);
      // 5. loop to accept client connection requests
      while (true)
      {
        Socket clientSocket;
        try
        {
          clientSocket = sListen.Accept ();
        }
        catch
        {
          throw;
        }
        // send data to the client
        //clientSocket.Send (Encoding.Unicode.GetBytes ("I am a server,you there?? !!!!"));
        // send the file
        byte[] buffer = ReadImageFile ("1.jpg");
        clientSocket.Send (buffer,buffer.Length,SocketFlags.None);
        Console.WriteLine ("Send success!");
      }
    }
    private static byte[] ReadImageFile (String img)
    {
      FileInfo fileinfo = new FileInfo (img);
      byte[] buf = new byte[fileInfo.Length];
      FileStream fs = new FileStream (img,FileMode.Open,FileAccess.Read);
      fs.Read (buf,buf.Length);
      fs.Close ();
      //fileInfo.Delete ();
      GC.ReRegisterForFinalize (fileinfo);
      GC.ReRegisterForFinalize (fs);
      return buf;
    }
  }
}

客户端接收和保存图片的代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;
namespace ConsoleApplication2
{
  Class Program
  {
    static void Main (String[] args)
    {
      // 1. to create a socket
      Socket S = new Socket (AddressFamily.InterNetwork,ProtocolType.Tcp);
      // 2. fill in the remote IP
      IPAddress IP = IPAddress.Parse ("127.0.0.1");
      IPEndPoint IPE = new IPEndPoint (IP,4321);
      Console.WriteLine ("started connection service ....");
      // 3. connect to the server
      s.Connect (IPE);
      // 4. receive data
      byte[] buffer = new byte[1000000];
      s.Receive (buffer,SocketFlags.None);
      //var Msg = Encoding.Unicode.GetString (buffer);
      //Console.WriteLine ("received message: (0)",msg);
      Console.WriteLine ("Receive success");
      FileStream fs = File.Create ("1.jpg");
      fs.Write (buffer,buffer.Length);
      fs.Close ();
      Console.ReadKey ();
    }
  }
}

希望本文所述对大家的C#程序设计有所帮助。

您可能感兴趣的文章:

  • C#使用Socket发送和接收TCP数据实例
  • c#(Socket)异步套接字代码示例
  • C#实现的Socket服务器端、客户端代码分享
  • c#(Socket)同步套接字代码示例
  • C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
  • C#中Socket通信用法实例详解
  • C#中异步Socket通信编程代码实例
  • C#实现Socket通信的解决方法
  • C# Socket网络编程实例
  • C#多线程数组模拟socket

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读