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)
{
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 ();
    }
}

}

猜你喜欢

转载自blog.51cto.com/14135053/2393417