网络编程高手请进来,Socket发送图片错误~~~
发送端主要代码:#region 用Socket发送图片
private void time(object o)
{
IPAddress sIP = IPAddress.Parse("127.0.0.1");
IPEndPoint ssIP = new IPEndPoint(sIP, 8001);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
s.Connect(sIP, 8001);
}
catch (Exception e)
{
Console.WriteLine("Error" + e.Message);
}
try
{
Bitmap CurrentBitmap = GetDesktopBitmap();
MemoryStream MS = new MemoryStream();
CurrentBitmap.Save(MS, ImageFormat.Jpeg);
byte[] b = MS.ToArray();
s.Send(b, b.Length, 0);
}
catch (Exception e)
{
Console.WriteLine("Error" + e.Message);
}
}
#endregion
运行结果:
接收端主要代码:
IPAddress HostIP = IPAddress.Parse("127.0.0.1");
IPEndPoint point;
Socket socket;
bool flag = true;
Socket acceptedSocket;
delegate void SetTextCallback(Bitmap mybit);
private void SetText(Bitmap mybit)
{
pictureBox1.Image = mybit;
}
private void Form1_Load(object sender, EventArgs e)
{
HostIP = IPAddress.Parse("127.0.0.1");
try
{
point = new IPEndPoint(HostIP, 8001);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(point);
socket.Listen(50);
acceptedSocket = socket.Accept();
Thread thread = new Thread(new ThreadStart(Proccess));
thread.Start();
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
private void Proccess()
{
if (acceptedSocket.Connected)
{
while (flag)
{
byte[] b = new byte[199999];
//读取字节
acceptedSocket.Receive(b);
//放到流中
MemoryStream ms = new MemoryStream(b);
//从流中读取图片
Image img = Image.FromStream(ms);
//设置pictureBox
pictureBox1.Image = img;
请高手们赐教,小弟刚学C#,非常感谢!!! --------------------编程问答-------------------- 你服务器端打开了没有? --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 服务器端已打开,端口8001也已经打开 --------------------编程问答-------------------- 服务端没有监听,或者你的防火墙封闭了
--------------------编程问答-------------------- 防火墙的问题吧,连接的时候是马上出来还是等一会儿才出来? --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 防火墙我关闭了,还是这样!!! --------------------编程问答-------------------- 我刚刚逐句运行,发现接收端Load事件根本没有运行!!! --------------------编程问答-------------------- acceptedSocket = socket.Accept();
Thread thread = new Thread(new ThreadStart(Proccess));
thread.Start();
你接收端写的明显有问题, --------------------编程问答-------------------- 序列化成xml再发 --------------------编程问答-------------------- 目标地址不对 --------------------编程问答-------------------- 大哥`````````你new Thread调用函数,这个Thread知道此Socket?
弄个类把socket.Accept接收到的Socket丢进去,然后去处理吧.
个人感觉.......... --------------------编程问答-------------------- 另外你这报的error不是已经出来了么?套接字没有提供地址. --------------------编程问答-------------------- 服务端监听有问题
补充:.NET技术 , C#