socket的弱问题,困扰半天了,解决了马上结帖
topil 2004-09-30 11:04:23 我想实现一个很简单client和server的通讯,client发送个字符串过去,server进行验证,如果正确再给client送过去一个回复.但是在server验证时,老实不能通过(就是有个if语句,在比较字符串时老有问题)
搞定了马上结帖!!!!!
代码如下:
server端
Imports System.Net.Sockets
Imports System.Net
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'创建服务器端的Socket
Dim sServer As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
Dim MyIP As IPAddress
'指定本地回路的IP地址
MyIP = IPAddress.Parse("127.0.0.1")
'设置服务器端的端口号
Dim ServerEP As New IPEndPoint(MyIP, 2001)
'设置客户端的端口号
Dim ClientEP As New IPEndPoint(MyIP, 2002)
'将Socket与端口绑定
sServer.Bind(ServerEP)
While True
Try
Dim bytes(100) As Byte
'等待客户端的请求
sServer.ReceiveFrom(bytes, ClientEP)
Dim str As String = System.Text.Encoding.ASCII.GetString(bytes)
Dim ans As String
If str.Trim.Equals("china") Then
ans = "pass"
Else
ans = "error"
End If
bytes = System.Text.Encoding.ASCII.GetBytes(ans)
'返回结果
sServer.SendTo(bytes, ClientEP)
Catch er As SocketException
MsgBox(er.ToString)
End Try
End While
End Sub
End Class
client端
Imports System.Net.Sockets
Imports System.Net
Public Class client
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'创建客户端的Socket
Dim cClient As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
'指定本地回路的IP地址
Dim MyIP As IPAddress
MyIP = IPAddress.Parse("127.0.0.1")
'设置服务器端的端口号
Dim ServerEP As New IPEndPoint(MyIP, 2001)
'设置客户端的端口号
Dim ClientEP As New IPEndPoint(MyIP, 2002)
'将Socket与端口绑定
cClient.Bind(ClientEP)
Try
Dim str As String = TxtInput.Text
Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes(str)
'向服务器发出请求
cClient.SendTo(bytes, ServerEP)
Dim bytes2(100) As Byte
'接收服务器的响应结果
cClient.ReceiveFrom(bytes2, ServerEP)
str = System.Text.Encoding.ASCII.GetString(bytes2)
'将结果显示在文本框中
TxtDisplay.Text = str
Catch er As SocketException
MsgBox(er.ToString)
End Try
'关闭Socket
cClient.Close()
End Sub
End Class
大家帮忙啊,小弟感谢先