我在本机中尝试:
port 127.0.0.1.4.0\r\n (使用1024端口)
回应200 OK!
于是:
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024); //本地数据地址连接口
m_sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //新建套接字
m_sock.Bind(remoteEP); //绑定本地地址端口
m_sock.Listen(1000); //开始监听
m_sock.BeginAccept(new AsyncCallback(ListenCallback), m_sock); //开始接受数据传送但我在ListenCallback(ar)函数中怎么也等不到回应?
port 127.0.0.1.4.0\r\n (使用1024端口)
回应200 OK!
于是:
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024); //本地数据地址连接口
m_sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //新建套接字
m_sock.Bind(remoteEP); //绑定本地地址端口
m_sock.Listen(1000); //开始监听
m_sock.BeginAccept(new AsyncCallback(ListenCallback), m_sock); //开始接受数据传送但我在ListenCallback(ar)函数中怎么也等不到回应?
控制连接还得再发一个消息,比如RETR /dir/file.ext接收文件
或者STOR上传文件此时服务器才会主动来连接你
http://www.csharphelp.com/archives/archive9.html
我还有一问题:当完成数据传送后,想断开连接时
m_sock.Shutdown(SocketShutdown.Both);
m_sock.Close();
但一执行Shutdown时就弹出错误:
"由于套接字没有连接并且 (当使用一个 sendto 调用发送数据报套接字时) 没有提供地址,发送或接收数据的请求没有被接受。"
其实在后面我已没有数据的传出和接收了,怎么解决呢?
同样接受数据使用Receive()而不能使用ReceiveFrom()方法
直接Close就行了