日期:2014-05-20  浏览次数:21081 次

Socket文件传送~!急。在线等待~!!up~也有分~!
我的一个小domo希望大家帮我改改~!报错:
通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
这个是发送端~!!!
private   void   SocketSend()
{
System.Net.Sockets.Socket   SendSocket   =   new   System.Net.Sockets.Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint   endPoint   =   new   IPEndPoint(IPAddress.Parse( "127.0.0.1 "),80);
FileStream   fileSteam   =   new   FileStream(Server.MapPath( "myFile.txt "),FileMode.OpenOrCreate,FileAccess.Read);
Byte[]   fsSize   =   new   byte[fileSteam.Length-1];
BinaryReader   reader   =   new   BinaryReader(fileSteam);
reader.Read(fsSize,0,(int)fileSteam.Length-1);

SendSocket.Connect(endPoint);

SendSocket.Send(fsSize);

fileSteam.Close();

SendSocket.Shutdown(SocketShutdown.Send);

SendSocket.Close();
}

------解决方案--------------------
IPEndPoint hostPoint = new IPEndPoint(IPAddress.Parse( "127.0.0.1 "),80);
不要用80端口。换一个1980
------解决方案--------------------
同意楼上的!
------解决方案--------------------
学习
------解决方案--------------------
to 上面那位大哥,你是放系网站里运行的么?我代码类似过我先前看的那段。我试过换左公网IP的时间不行阿。只有本机IP才行阿。(asp.net)
------解决方案--------------------
80端口是系统默认的http端口,一般情况都是系统自动打开的,
一般用户自定义端口都用2000后,反正就是不要与常用的那些冲突。

而且你客户端进行连接时,报错【由于目标机器积极拒绝,无法连接。】的话,是你服务端没有打开这个端口,或者打开了端口,但是服务端有防火墙。
------解决方案--------------------
由于目标机器积极拒绝
是你代码问题
你不要先急着关闭socket
------解决方案--------------------
“由于目标机器积极拒绝,无法连接”是由于你的端口监听不正确,保证双方监听的是同一个端口
------解决方案--------------------
up
------解决方案--------------------
主要原因是你在同一台机子上用同一个端口又发送又接收
你把接收端放到另一台计算机上 IP也要改过来

或者接收端用TCPListener直接监听。如TcpListener mylisten=new TcpListener(800);
------解决方案--------------------
up~!
------解决方案--------------------
up
------解决方案--------------------
(通常每个套接字地址(协议/网络地址/端口)只允许使用一次)

提示这个一般是端口重复或同一个套接字在多个程序中同时使用等等!
------解决方案--------------------
试试把发送房和接收方程序放在不同的机器上

------解决方案--------------------
UP..
------解决方案--------------------
127.0.0.1 要2个程序放在一个机器上
端口换2000+的
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
jf
------解决方案--------------------
接受端:
Socket t_server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
t_server.Bind(new IPEndPoint(IPAddress.Any, 2222));
t_server.Listen(2);
FileStream file = new FileStream (@ "d:\1.txt ",FileMode.Create );