Socket,为何服务器端和客户端连接没响应?????

soulmaomao 2007-03-27 09:33:32
我做了一个简单计算机机房系统,但是服务器端和客户端没响应?
服务器端代码:
Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Public Class Form1
Inherits System.Windows.Forms.Form
Dim socket(127) As Socket
Dim socketCount As Integer = 0
Dim run As Boolean = True
Sub establistsocket(ByVal state As Object)
While run
Dim listener As Socket
listener = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim serveradd As IPAddress = Dns.Resolve("").AddressList(0)
Dim enpoint As New IPEndPoint(serveradd, 50)
listener.Bind(enpoint)
listener.Listen(0)
socket(socketcount) = listener.Accept
listener.Close()
socketcount = socketcount + 1
End While
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback(AddressOf establistsocket))
Login.Show()

End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim ASCII As System.Text.Encoding = System.Text.Encoding.ASCII
Dim receivebyte(16) As Byte
Dim receivePage As String = String.Empty
Dim i As Integer
For i = 0 To socketcount
If Not socket(i) Is Nothing Then
If socket(i).Available <> 0 Then
socket(i).SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000)
Dim bytes As Int32 = socket(i).Receive(receivebyte, receivebyte.Length, 0)
receivePage = ASCII.GetString(receivebyte, 0, bytes)
ProcessInfo(receivePage, i)
End If
End If
Next
End Sub

客户端代码:
Function SendInfo(ByVal Info As String, ByVal SocketIndex As Integer)
Dim ASCII As System.Text.Encoding = System.Text.Encoding.ASCII
Dim SendStr As String = Info
Dim byteSend As Byte()
byteSend = ASCII.GetBytes(SendStr)
socket(SocketIndex).Send(byteSend, byteSend.Length, 0)
End Function
Sub establistsocket(ByVal state As Object)
Dim serveradd As IPAddress = Dns.Resolve("").AddressList(0)
Dim enpoint As New IPEndPoint(serveradd, 50)
Dim temp As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
temp.Blocking = True '设置Socket对象处于阻塞状态
temp.Connect(enpoint) '连接服务器
socket = temp
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 5000)
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 5000)
If socket.Connected Then
Dim info As String
info = "L" & TxtIDOrder.Text.PadRight(6) & TxtPassword.Text.PadRight(10)
SendInfo(info) '发送登录信息
End If
End Sub


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim ASCII As System.Text.Encoding = System.Text.Encoding.ASCII
Dim receivebyte(20) As Byte
Dim receivePage As String = String.Empty
If Not socket Is Nothing Then
If socket.Available <> 0 Then
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000)
Dim bytes As Int32 = socket.Receive(receivebyte, receivebyte.Length, 0) '接收二进制信息
receivePage = ASCII.GetString(receivebyte, 0, bytes) '转换为字符
ProcessInfo(receivePage)
End If
End If
End Sub
...全文
242 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,554

社区成员

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

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