"不允许对非连接的套接字执行此操作"求解

pl99k 2008-06-05 10:15:22
按例子弄的,一个服务器端,一个客户端
服务器端:
Dim stm As Net.Sockets.NetworkStream
Dim lis As Net.Sockets.Socket
Dim rr As StreamReader
Dim wr As StreamWriter
Dim s As Sockets.Socket
Try
lis = New Sockets.Socket(Sockets.AddressFamily.InterNetwork, Sockets.SocketType.Stream, Sockets.ProtocolType.Tcp)
lis.Blocking = True
lis.Bind(New Net.IPEndPoint(Dns.Resolve(Dns.GetHostName.ToString).AddressList(0), 11000))
lis.Listen(0)
lis.Accept()
s = lis
lis.Close()
stm = New Net.Sockets.NetworkStream(lis)
rr = New StreamReader(stm)
wr = New StreamWriter(stm)
wr.Write("hellohello")
wr.Flush()
Catch ex As Exception
MsgBox(ex.ToString)
End Try

启动服务器端后启动客户端,出现异常"不允许对非连接的套接字执行此操作",求高人解答。
...全文
2278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonderful_abc 2012-03-12
  • 打赏
  • 举报
回复
雁过留声....
haifeng_4216 2009-06-19
  • 打赏
  • 举报
回复
static void Main()
{
const int NumPort = 8000;
TcpListener lister = new TcpListener(NumPort);

lister.Start();
while (true)
{
Console.WriteLine("Connection waiting……");

TcpClient client = new TcpClient();

Console.WriteLine("Connecttion Accept");

//通过网络流返回用于发送和接受的数据
System.Net.Sockets.NetworkStream stream = client.GetStream();

byte[] byteTime = Encoding.ASCII.GetBytes(DateTime.Now.ToString());

try
{
stream.Write(byteTime, 0, byteTime.Length);
}
catch (SocketException ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
if (stream!=null)
{
stream.Close();
client.Close();
}
}
}
lister.Stop();
}

这是我的程序也出现这种问题……
晓轩 2008-06-06
  • 打赏
  • 举报
回复
Dim stm As Net.Sockets.NetworkStream
Dim lis As Net.Sockets.Socket
Dim rr As StreamReader
Dim wr As StreamWriter
Dim s As Sockets.Socket
Try
lis = New Sockets.Socket(Sockets.AddressFamily.InterNetwork, Sockets.SocketType.Stream, Sockets.ProtocolType.Tcp)
lis.Blocking = True
lis.Bind(New Net.IPEndPoint(Dns.Resolve(Dns.GetHostName.ToString).AddressList(0), 11000))
lis.Listen(0)
lis.Accept()
s = lis

stm = New Net.Sockets.NetworkStream(lis)
rr = New StreamReader(stm)
wr = New StreamWriter(stm)
wr.Write("hellohello")
wr.Flush()

lis.Close() '你接受完连接请求就关闭了。什么也没做。如果要发送内容应该把代码放在这前面

Catch ex As Exception
MsgBox(ex.ToString)
End Try
只在此山中 2008-06-06
  • 打赏
  • 举报
回复
客户端代码呢?
问题很明显,套接字未成功连接,不能做如发送、接收等操作。
你要查查是服务器端断开了连接还是客户端连接错误。

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧