VB.NET 服务器与客户端数据交互问题?

VB.NET 中由客户端向服务器提交信息,然后服务器端与数据库进行数据交互,处理完成后把处理结果返回给客户端,提交信息允许多个客户端同时向服务器提交数据,请问如何实现,往各位大侠指点。 最好是有源码,谢谢了!~

客户端简单代码:
Imports System.Net.Sockets
Imports System.IO
Private Output As NetworkStream
Private Writer As BinaryWriter
Private Reader As BinaryReader
Dim StrSend As String
Dim client As New TcpClient '
client.Connect(servIP, 2006)
Output = client.GetStream
Writer = New BinaryWriter(Output)
Reader = New BinaryReader(Output)
StrSend = "字符串"
System.Threading.Thread.Sleep(100)
Writer.Write(StrSend)
Try
Message = Reader.ReadString
If Message = "OK" Then
LBinfo.Text = "成功!" '测试
Else
LBinfo.Text = "失败!"
End If
System.Threading.Thread.Sleep(100)

Catch ex As Exception
MessageBox.Show("Client Application Closing!")
Finally
Writer.Close()
Reader.Close()
Output.Close()
client.Close()
End Try
服务器端
用线程
Imports System.Net.Sockets
Imports System.IO
Imports System.Threading
Imports System.Windows.Forms

Private Connection As Socket
Private readThread As Thread
Private SocketStream As NetworkStream
Private Writer As BinaryWriter
Private Reader As BinaryReader

Public Sub New()
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化
readThread = New Thread(AddressOf RunServer)
readThread.Start()

End Sub
Public Sub RunServer()
Dim Listener As TcpListener
Try
Listener = New TcpListener(Net.IPAddress.Parse("192.168.1.16"), 2006)
Listener.Start()
While True

Connection = Listener.AcceptSocket 'accept an incoming connection
SocketStream = New NetworkStream(Connection) 'create networkstream object associated with socket
Writer = New BinaryWriter(SocketStream) 'create object for transferring data across stream
Reader = New BinaryReader(SocketStream) 'read string data sent from client

Try
Do
strIncept = Reader.ReadString
strIncept = DataDisp(strIncept) '此处插入数据处理程序()
SendInfoToClient(strIncept) 'send to client
Loop While Connection.Connected

Catch ex As Exception
MsgBox(ex.ToString)
Finally
Writer.Close()
Reader.Close()
SocketStream.Close()
End Try
End While
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Public Sub SendInfoToClient(ByVal Info As String)
'Send to client
Try
If Connection.Connected Then
Writer.Write(Info)
Connection.Close()
End If
Catch ex As SocketException
MessageBox.Show(ex.ToString)
End Try
End Sub
整个过程都有了
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
最简单的办法是把“服务器端”做成一个服务 服务有很多种 例如wcf和webservice
可以把这种类型的服务看成一个远程的类库 wcf有很完善的并发处理机制 可以满足大量用户同时提交数据 而webservice比较简单易用 并发处理和数据吞吐量的能力不如wcf
具体如何实现这种结构 到网上查查有很多例子

然后是如果服务器必需是一个应用程序的话 那还可以使用socket
套接字又分为udp和TCP两大类 udp是无服务端的 也就是说客户端可以独立运行 而TCP是必需开启服务端 客户端才可以运行的 而udp和tcp相对于上面所说的服务结构开发会复杂很多 并发情况和数据吞吐量也很难控制

socket介绍:
ht tp: //ba ike.baidu.c om/vi ew/538 713.h tm

WCF介绍:
ht tp: //ba ike.baidu.c om/vi ew/1140 438.h tm

WebService介绍:
ht tp: //ba ike.baidu.c om/vi ew/837 392.h tm

自己去掉空格 不然回答要被审核多久 你懂的本回答被提问者和网友采纳
第2个回答  2010-11-21
改改服务器的代码就好了,你用的是winsock控件把,用winsock控件组,再用load加载控件,然后客户端来一个申请你就跟一个,算了,给你代码好了- -
winsock的index属性设为0
Private Sub FORM_load()

For i = 1 To 100

Load Winsock1(i)

Next i

End Sub
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)

For i = 1 To 100

If Winsock1(i).State = 0 Then

Winsock1(i).Close

Winsock1(i).Accept requestID

Exit Sub

End If

Next i

End Sub
把你代码框里和这两条有关的删去,再复制,form_load 里的内容看着改一改就可以,不过必须加载

vb.net\/.net怎样使用http协议的get和post?
从上面的代码可以看出, POST 中文数据的时候,先使用 UrlEncode 方法将中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。以上列出了客户端程序使用 HTTP 协议与服务器交互的情况,常用的是 GET 和 POST 方式。现在流行的 WebService ...

vb.net操作数据库的效率问题
select * from XXX 如果数据量少还可以,如果数据量一大,需要从适配器在读取到Dataset中,这个是相当耗时的。其实,有一些程序可以采用 分段读取,多次读取。像这样的写法,更新一条数据,就需要在重新读取所有的数据。。耗费太大资源和贷款。。客户端也会导致很慢甚至读取数据假死。。--- 最好的方式...

挑战VB.Net和Flash都精通的高手:VB.Net与Flash的交互问题!
你这个是.net控制的。你发个 flash的文件。没用。上面的代码是你 .net所有的代码吗?应该还有类文件吧。。可以给你做成一个 flash的。。摒弃.net.

asp.net中客户端和服务端分别是什么?
服务端主要由Web服务器,如IIS,与网站代码共同组成。Web服务器是提供浏览服务的服务器端软件,其主要任务是接收客户端的请求,解析并执行相应的服务器端代码,最后将处理结果返回给客户端。在ASP.NET中,后台开发通常使用VB.net或C#语言编写,以实现逻辑处理和数据库交互等功能。客户端通常由浏览器担任,...

在web中编码使程序运行到某一步骤不能提交怎么表示
当用某种语言(如VB.NET或C#)来构造一个Webservice时,为了符合Webservice标准,所有使用的数据类型都必须被转换为XSD类型。3.Webservice的技术特点长项一:跨防火墙的通信如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者...

打开C盘看到这两个“破碎文件”,不知道是什么!大家看看,能删么??
Windows Media 音频解码器 msafd.dll ...Microsoft Windows Sockets 2.0 服务提供程序 msapsspc.dll ...32 位平台下的 DPA 客户端 msaudite.dll ...安全审核事件 DLL mscat32.dll ...MSCAT32 Forwarder DLL MSCTFP.dll ...MSCTFP Server DLL msdadiag.dll ...Microsoft Data Access – 内建诊断 msdart...

.net中,如何在Web中使用Timer控件
ADO.NET 结构也可以在客户端应用程序(如 Windows 窗体)或 ASP.NET 创建的 HTML 页中实现。 ▲System.Data.Common 包含由 .NET Framework 数据提供程序共享的类。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。 ▲System.Data.Odbc 封装ODBC .NET Framework 数据提供程序。....

Winsocket API 使用
注意,服务器与客户机之间的交互可以是面向连接的(基于流套接字),也可以是无连接的(基于数据报套接字)。服务器 socket() | bind() | listen() 客户机 | | socket() | 建立连接 | accept() <--- connect() | 请求数据 | recv() <--- send() | | 处理服务请求 | | 应答数据 | send() ---...

VB中的控件介绍
2.提供一组事件,可以为其编写事件处理程序,方法与在基于客户端的窗体中大致 相同,所不同的是事件处理是在服务器代码中完成的。 3.在客户端脚本中处理事件的能力。 4.自动维护控件状态。 5.与验证控件进行交互,便于验证用户是否在控件输入了适当的信息。 6.数据绑定到一个或多个控件属性 7. 直接可用的自定义属...

如何在asp.net里实现弹出对话框(VB脚本)(菜鸟勿扰)
在server上有一个脚本生成文件,并放入一个文件夹,也许你是用的VB写的winform在server定时跑,然后如果server上的脚本发现这个文件存在,则就需要在client端显示一个对话框,让用户判断如何操作,替换还是保持并打开.因为你后面是用winform的,而前台是用asp.net ,所以你并没有用到socket编程..如果client也是用...

相似回答