C#通过Socket在网络间发送和接收图片的演示源码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ();
    }
}

}

以上是关于C#通过Socket在网络间发送和接收图片的演示源码的主要内容,如果未能解决你的问题,请参考以下文章

C#通过Socket同时发送字符串和视频流

C# Socket 如何完全发送/接收数据

C# 发送HttpWebRequest获得网络图片的大小尺寸

如何用Qt的Qudpsocket传输图片文件?

C#定时器接收定时发送和处理接收socket异步通信,接收值放在静态变量里,有时候收到的数据不完整。

C#中的Socket