1. 程式人生 > >C#通過Socket在網絡間發送和接收圖片的演示源碼

C#通過Socket在網絡間發送和接收圖片的演示源碼

pri lin ... ica sta ipaddr jpg endpoint pen

將內容過程中常用的內容段備份一次,如下資料是關於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)
{
Socket sListen = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        IPAddress IP = IPAddress.Parse ("127.0.0.1");
        IPEndPoint IPE = new IPEndPoint (IP, 4321);

        sListen.Bind (IPE);

        Console.WriteLine ("Service is listening ...");
        sListen.Listen (2);

        while (true)
        {
            Socket clientSocket;
            try
            {
                clientSocket = sListen.Accept ();
            }
            catch
            {
                throw;
            }

            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 ();
        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)
{
Socket S = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        IPAddress IP = IPAddress.Parse ("127.0.0.1");
        IPEndPoint IPE = new IPEndPoint (IP, 4321);

        Console.WriteLine ("started connection service ....");
        s.Connect (IPE);

        byte[] buffer = new byte[1000000];
        s.Receive (buffer, buffer.Length, SocketFlags.None);
        Console.WriteLine ("Receive success");

        FileStream fs =  File.Create ("1.jpg");
        fs.Write (buffer, 0, buffer.Length);
        fs.Close ();

        Console.ReadKey ();
    }
}

}

C#通過Socket在網絡間發送和接收圖片的演示源碼