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
...全文
246 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,722

社区成员

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

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