在VB.NET下利用Socket实现简单的字符串发送接收程序
来源:互联网 发布:怎么写软件需求 编辑:程序博客网 时间:2024/05/20 02:52
先查看MSDN帮助系统,找到socket类,有详细的创建套接字、使用套接字侦听、使用客户端套接字的说明。
打开VS.Net 2003,新建一个VB.Net工程,名称为Server。在界面上添加一个列表框,两个按钮。界面如图所示:
我们使用多线程来实现
先导入命名空间:
Imports System.Net.sockets
Imports System.net
Imports System.Text
Imports System.Threading
定义两个窗体变量
Dim s As Socket = Nothing
Dim t As Thread
新建一个过程,用于处理接收到的Socket数据包
Public Sub WaitData()
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '''使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024) '''指定IP和Port
s.Bind(localEndPoint) '''绑定到该Socket
s.Listen(100) '''侦听,最多接受100个连接
While (True)
Dim bytes(1024) As Byte '''用来存储接收到的字节
Dim ss As Socket = s.Accept() '''若接收到,则创建一个新的Socket与之连接
ss.Receive(bytes) '''接收数据,若用ss.send(Byte()),则发送数据
ListBox1.Items.Insert(0, Encoding.Unicode.GetString(bytes)) '''将其插入到列表框的第一项之前
'''若使用Encoding.ASCII.GetString(bytes),则接收到的中文字符不能正常显示
End While
End Sub
在BtnStart的click事件中,加入如下代码:
t = New Thread(AddressOf WaitData) '''建立新的线程
t.Start() '''启动线程
BtnStart.Enabled = False '''按钮不可用,避免另启线程
在BtnStop的click事件中,加入如下代码:
Try
s.Close() '''关闭Socket
t.Abort() '''中止线程
Catch
Finally
BtnStart.Enabled = True '''启用BtnStart
End Try
为了防止用户不点击Stop直接退出,而不能使线程结束,则应在窗体的closing事件中,加入如下代码:
Try
s.Close()
t.Abort()
Catch
End Try
下面新建一个VB.Net工程,名称为Client。在界面上添加一个文本框,一个按钮。界面如图所示:
先导入命名空间:
Imports System.Net.sockets
Imports System.net
Imports System.Text
Imports System.Net.sockets
Imports System.net
Imports System.Text
在BtnSend的click事件中,加入如下代码:
Try
Dim bytes(1024) As Byte
Dim s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024)
s.Connect(localEndPoint)
s.Send(Encoding.Unicode.GetBytes(TextBox1.Text))
s.Close()
Catch ex As Exception
Try
Dim bytes(1024) As Byte
Dim s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 1024)
s.Connect(localEndPoint)
s.Send(Encoding.Unicode.GetBytes(TextBox1.Text))
s.Close()
Catch ex As Exception
End Try
这样,这个小程序就完成了,当然可以添加新的功能,使其功能更强大!
源代码:下载
- 在VB.NET下利用Socket实现简单的字符串发送接收程序
- VB.NET通过Socket实现字符串发送与接收程序
- vs.net打造发送与接收端程序(vb.net)
- java socket实现文件的发送接收
- linux下基于udp的简单的接收与发送程序,开发板与本机接收与发送信息
- linux下基于tcp的简单的接收与发送程序,开发板与本机接收与发送信息
- 利用静态数组在MQ中发送接收字符串
- 利用静态数组在MQ中发送接收字符串
- Java Socket发送与接收HTTP消息简单实现
- Java Socket发送与接收HTTP消息简单实现
- Java Socket发送与接收HTTP消息简单实现
- Java Socket发送与接收HTTP消息简单实现
- Java Socket发送与接收HTTP消息简单实现
- windows 下怎样利用NET-SNMP 发送和接收trap
- [VB.NET]请问,如何暂停socket的异步接收?
- 通过python下的socket实现组播数据的发送和接收
- 利用socket实现简单的文件传输小程序
- vb.net下的socket编程
- 使用struts-menu_详细(1)实现动态菜单
- sakai配置(中文版)(三)
- sakai配置(中文版)(四)
- [译]Struts Menu开发向导
- (C,C++)翻译的阶段(Phases of Translation)[SH]
- 在VB.NET下利用Socket实现简单的字符串发送接收程序
- 使用JavaBean创建您的网上日历本(2)
- JSP数据库操作例程(Use Bean)
- 如何使用JSP+MySQL创建留言本(一)
- 如何使用JSP+MySQL创建留言本(三)
- 使用UDL获取连接字符串
- 如何使用JSP+MySQL创建留言本(二)
- 神秘的文件结束到底是什么判断出来的?
- 使用JSP读取客户端信息