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

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

客户端简单代码:
Imports SystemNetSockets
Imports SystemIO
Private Output As NetworkStream
Private Writer As BinaryWriter
Private Reader As BinaryReader
Dim StrSend As String
Dim client As New TcpClient '
clientConnect(servIP, 2006)
Output = clientGetStream
Writer = New BinaryWriter(Output)
Reader = New BinaryReader(Output)
StrSend = "字符串"
SystemThreadingThreadSleep(100)
WriterWrite(StrSend)
Try
Message = ReaderReadString
If Message = "OK" Then
LBinfoText = "成功!" '测试
Else
LBinfoText = "失败!"
End If
SystemThreadingThreadSleep(100)
Catch ex As Exception
MessageBoxShow("Client Application Closing!")
Finally
WriterClose()
ReaderClose()
OutputClose()
clientClose()
End Try
服务器端
用线程
Imports SystemNetSockets
Imports SystemIO
Imports SystemThreading
Imports SystemWindowsForms
Private Connection As Socket
Private readThread As Thread
Private SocketStream As NetworkStream
Private Writer As BinaryWriter
Private Reader As BinaryReader
Public Sub New()
MyBaseNew()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
readThread = New Thread(AddressOf RunServer)
readThreadStart()
End Sub
Public Sub RunServer()
Dim Listener As TcpListener
Try
Listener = New TcpListener(NetIPAddressParse("192168116"), 2006)
ListenerStart()
While True
Connection = ListenerAcceptSocket '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 = ReaderReadString
strIncept = DataDisp(strIncept) '此处插入数据处理程序()
SendInfoToClient(strIncept) 'send to client
Loop While ConnectionConnected
Catch ex As Exception
MsgBox(exToString)
Finally
WriterClose()
ReaderClose()
SocketStreamClose()
End Try
End While
Catch ex As Exception
MsgBox(exToString)
End Try
End Sub
Public Sub SendInfoToClient(ByVal Info As String)
'Send to client
Try
If ConnectionConnected Then
WriterWrite(Info)
ConnectionClose()
End If
Catch ex As SocketException
MessageBoxShow(exToString)
End Try
End Sub
整个过程都有了

android客户端和服务器端是基于IntentService的,具体如下:

后台使用简单的servlet,支持GET或POST。这个servlet最终返回给前台一个字符串flag,值是true或false,表示登录是否成功。

然后在安卓的ADT上创建一个安卓项目,建立两个Activity,分别作为登录界面和登录成功界面。

>

IntentService服务,用于在后台以队列方式处理耗时 *** 作。

在AndroidManifestxml中注册IntentService。注意uses-permission节点,为程序开启访问网络的权限。

登陆界面处理,注意按钮监听事件中,使用Intent将要传递的值传给service。接收广播类中,同样使用Intent将要传递的值传给下一个Activity。在onCreate()中,动态注册接收广播类的实例receiver。在接收广播类中,不要使用完毕后忘记注销接收器,否则会报一个Are you missing a call to unregisterReceiver() 的异常。

首先不要管安卓端还是苹果端,现在一般都是响应式的app,你放到安卓或者苹果或者pc或者平板都是没有问题的。一般采用的是>

数据交换(Data Switching)是指在多个数据终端设备(DTE)之间,为任意两个终端设备建立数据通信临时互连通路的过程。数据交换可以分为:电路交换、报文交换、分组交换和混合交换。电路交换原理与电话交换原理基本相同。电路交换的缺点是电路的利用率低,双方在通信过程中的空闲时间,电路不能得到充分利用。

报文交换的原理是当发送方的信息到达报文交换用的计算机时,先存放在外存储器中,待中央处理机分析报头,确定转发路由,并选到与此路由相应的输出电路上进行排队,等待输出。一旦电路空闲,立即将报文从外存储器[1]  取出后发出,这就提高了这条电路的利用率。报文交换虽然提高了电路的利用率,但报文经存储转发后会产生较大的时延。分组交换也是一种存储转发交换方式,但与报文交换不同,它是把报文划分为一定长度的分组,以分组为单位进行存储转发。这就不但具备了报文交换方式提高电路利用率的优点,同时克服了时延大的缺点。

电文交换相比,分组交换的优点是:

①在电文交换中,总的传输时延是每个节点上接收与转发整个电文时延的总和,而在分组交换中,某个分组发送给一个结点后,就可以接着发送下一个分组,这样总的时延就减小;

②每个节点所需要的缓存器容量减小,这有利于提高节点存储资源的利用率;

③传输有差错时,只要重发一个或若干个分组,不必重发整个电文,这样可以提高传输效率。分组交换的缺点是每个分组要附加一些控制信息,这会使传输效率降低,尤以长电文为甚。一般分组交换提供虚电路和数据报两种基本业务。[2]

混合交换

在一个计算机网络中同时采用电路交换和分组交换方式,称为混合交换。混合的方法是将传送信道分为不同的带宽,将一部分带宽分配给电路交换使用,而将另一部分带宽分配给分组交换使用。这里所谓的带宽就是指在一条传输信道上允许传输信息的频带宽度,即能从信道上通过信号的最高频率。

1。本地管理:你自己拥有服务器,广域网接口,已经申请了域名。这种情况成本最高,维护最麻烦。但是好处是更新速度快(可在本地直接完成),网络带宽稳定。
2。服务器托管:你自己拥有服务器,已经申请了域名。这种情况的成本较上一种的低,维护相对简单,只要将更新的资料随时上传即可。但是更新速度较慢(需要通过网络登陆到服务器上传),网络带宽可能不太稳定。
3。完全托管:你只拥有域名。这种情况成本最底,维护相对简单。但是网站的更新较慢,服务器的使用情况不明,性能没有保障(网络公司一般会让几可网站共用一个服务器),访问带宽完全没有保障。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13406752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存