110,533
社区成员
发帖
与我相关
我的任务
分享
void aa() //这个是发送端
{
string imagePath = "D:\\12.exe";
IPAddress ip = IPAddress.Parse("192.168.1.3");
IPEndPoint ipe = new IPEndPoint(ip, 5000);
//创建Socket
Socket cSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
cSocket.Connect(ipe);
//Thread.Sleep(1); //这里到send那里加上线程暂停或者创建新线程文件都可以发送成功。
if (cSocket.Connected)
{
FileStream reader = new FileStream(imagePath, FileMode.Open, FileAccess.Read, FileShare.None);
int filelength = (int)reader.Length;
byte[] buffer = new byte[filelength]; //创建文件缓冲区
reader.Read(buffer, 0, filelength); //读取文件长度的字节添加到缓冲区
int ru =cSocket.Send(buffer, 0, filelength, SocketFlags.None);
//MessageBox.Show(cSocket.SendBufferSize.ToString());
}
//创建FileStream对象
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//这里是接收端
private void button1_Click(object sender, EventArgs e)
{
string path = "E://da.exe";
IPAddress ip = IPAddress.Parse("192.168.1.3");
IPEndPoint ipe = new IPEndPoint(ip, 5000);
//创建Socket
Socket cSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
cSocket.Bind(ipe);
cSocket.Listen(0);
Socket nSocket=cSocket.Accept();
//byte[] buffs1= new byte[1024];
//nSocket.Receive(buffs1);
//int Filelength = BitConverter.ToInt32(buffs1, 0);
byte[] buffs2 = new byte[50000000];
//423424
if (nSocket.Connected)
{
nSocket.Receive(buffs2, 0, buffs2.Length, SocketFlags.None);
}
using (FileStream writer = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
{
writer.Write(buffs2, 0, 50000000);
writer.Flush();
}
MessageBox.Show("完成");
}
int len = 0;
if (nSocket.Connected)
{
len = nSocket.Receive(buffs2, 0, buffs2.Length, SocketFlags.None);
}
using (FileStream writer = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
{
writer.Write(buffs2, 0, len);
writer.Flush();
}