如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !
---------------------------------------------------------------------------------------------------------------------------------
运行结果:
发送端代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;using System.Net.Sockets;using System.Net;namespace tcp{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //textBox1.Text = "101.91.224.228"; textBox1.Text = "192.168.1.100"; textBox2.Text = "8008"; } FileStream fs = new FileStream(@"1.jpg", FileMode.Open); private void SendImage(IPAddress remoteIP,int Port) { //实例化socket Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ipep = new IPEndPoint(remoteIP, Port); socket.Connect(ipep); long contentLength = fs.Length; //第一次发送数据包的大小 socket.Send(BitConverter.GetBytes(contentLength)); while (true) { //每次发送128字节 byte[] bits = new byte[128]; int r = fs.Read(bits, 0, bits.Length); if (r <= 0) break; socket.Send(bits, r, SocketFlags.None); } socket.Close(); fs.Position = 0; } private void button1_Click(object sender, EventArgs e) { SendImage(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text)); MessageBox.Show("发送成功"); } }}
接收端代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace recTCP{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //RecviveImage(); textBox1.Text = "8008"; } private void RecviveImage(int port) { new Thread(delegate () { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ipep = new IPEndPoint(IPAddress.Any, port); socket.Bind(ipep); socket.Listen(2); while (true) { try { byte[] data = new byte[8]; Socket clientSocket = socket.Accept(); if (clientSocket.Connected) { clientSocket.Receive(data, data.Length, SocketFlags.None); long contentLength = BitConverter.ToInt64(data, 0); int size = 0; MemoryStream ms = new MemoryStream(); while (size < contentLength) { byte[] bits = new byte[128]; int r = clientSocket.Receive(bits, bits.Length, SocketFlags.None); if (r <= 0) break; ms.Write(bits, 0, r); size += r; } Image img = Image.FromStream(ms); this.Invoke((EventHandler)delegate { pictureBox1.Image = img; //更新在窗体控件上 }); clientSocket.Close(); ms.Flush(); ms.Close(); ms.Dispose(); } } catch { } } }) { IsBackground = true}.Start(); } private void button1_Click(object sender, EventArgs e) { RecviveImage(int.Parse(textBox1.Text)); } }}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !
原文转载:http://www.shaoqun.com/a/480941.html
启明星软件:https://www.ikjzd.com/w/1436
camel:https://www.ikjzd.com/w/331.html
bol:https://www.ikjzd.com/w/291
如果需要查看更多文章,请微信搜索公众号csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群,我邀请你进群!!!---------------------------------------------------------------------------------------------------------------------------------运行结
www.made-in-china.com:https://www.ikjzd.com/w/2777
亿恩网:https://www.ikjzd.com/w/1461
通知!速卖通不用缴纳年费了,三次考核不达标将被永久清退!:https://www.ikjzd.com/home/111406
eBay加拿大站推出Promoted Listing新政策更新:https://www.ikjzd.com/home/113538
关于易得客多店铺IP管理的价值及安全防护机制!:https://www.ikjzd.com/home/125792
No comments:
Post a Comment