软件编程
位置:首页>> 软件编程>> C#编程>> C#使用Socket实现发送和接收图片的方法

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

作者:令狐不聪  发布时间:2023-11-19 01:43:22 

标签: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[] 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, 0, 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, SocketType.Stream, 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, buffer.Length, 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, 0, buffer.Length);
     fs.Close ();
     Console.ReadKey ();
   }
 }
}

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com