好难搞呀!~

sufan 2003-08-21 03:56:09
我遇到的问题:
假设系统中两台客户机a、b,服务器w。
要实现功能为:
客户机a发送字符串"a"给服务器w,服务器w接收到客户机a发送的字符串"a",
就发送给客户机b字符串"b"。客户机b显示字符串"b"信息。
以上问题要vb通过winsock控件实现,要怎样写代码?
最好帮写出源代码~~

我想我的主要问题是:服务器需要和具体ip地址客户机进行通讯。

请大师指点迷津!
问题不解决就不和女朋友约会!~~~~~
...全文
23 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
imur 2003-08-27
  • 打赏
  • 举报
回复
up
sufan 2003-08-24
  • 打赏
  • 举报
回复
大家要是有时间的话,帮我写出原代码好吗?
要是能够解决问题,给钱都愿意!
sufan 2003-08-24
  • 打赏
  • 举报
回复
以下上程序load的代码。
Winsock1(0).LocalPort = 3333
Winsock1(0).Listen
我怎样让服务器端对应客户端winsock呢?
如果在listen前加一个
Winsock1(0).RemoteHost = "a"
这样显然是不正确的,我加了以上这句代码。
程序也可以对"b"客户端发送信息。

真的搞不懂大家说的winsock数组对应客户端a,b是怎样实现的?
danielinbiti 2003-08-24
  • 打赏
  • 举报
回复
Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpServer.State <> sckClosed Then _
tcpServer.Close
'接受具有 requestID 参数的
'连接。
tcpServer.Accept requestID
End Sub
每个客户端连接进来的requestID是对应的,因此只要知道服务器的地址,对应的winsock就能实现向任何一个客户端发送信息。
sufan 2003-08-24
  • 打赏
  • 举报
回复
自己给自己up
sufan 2003-08-22
  • 打赏
  • 举报
回复
真的是满急
sufan 2003-08-22
  • 打赏
  • 举报
回复
救命呀
yijiansong 2003-08-22
  • 打赏
  • 举报
回复
IP 包中包括发送方IP,你可以取来用
sufan 2003-08-22
  • 打赏
  • 举报
回复
看了楼上的给的代码?
还是没有想到有什么办法能够解决对固定ip地址发送消息
ftp0697 2003-08-22
  • 打赏
  • 举报
回复
给你段代码看看吧!
http://www.dapha.net/down/list.asp?id=546
sufan 2003-08-22
  • 打赏
  • 举报
回复
大家还没有上班吗?
sufan 2003-08-21
  • 打赏
  • 举报
回复
Private Sub Form_Load()
'将 LocalPort 属性设置为一个整数。
'然后调用 Listen 方法。
tcpServer.LocalPort = 1001
tcpServer.Listen
frmClient.Show '显示客户端的窗体。
End Sub

Private Sub tcpServer_ConnectionRequest _
(ByVal requestID As Long)
'检查控件的 State 属性是否为关闭的。
'如果不是,
'在接受新的连接之前先关闭此连接。
If tcpServer.State <> sckClosed Then _
tcpServer.Close
'接受具有 requestID 参数的
'连接。
tcpServer.Accept requestID
End Sub

Private Sub txtSendData_Change()
'名为 txtSendData 的 TextBox 控件中
'包含了要发送的数据。当用户往文本框中
'键入数据时,使用 SendData 方法
'发送输入的字符串。
tcpServer.SendData txtSendData.Text
End Sub

以上是msdn的源代码,我始终没有想通要使用什么样的方法能够让服务器端
winsock控件针对ip对相应的客户端发送信息!

即使使用winsock控件数组,我又要用什么样的方法让服务器w中的
winsock(0)和winsock(1)对应不同ip地址的客户端a,b发送消息呢?

本人资质之差,请大家谅解!
danielinbiti 2003-08-21
  • 打赏
  • 举报
回复
这个不是很难吧
在服务器用一个WINSOCK作Listening ,创建一个控件数组用作收发数据,
当客户机a发送过来时,用winsock(0)进行接受和发送,转而发送给b(服务断用winsock(1))

这个原理跟winsock做的网络多人聊天一样了。

转发的大概过程就是
在winsock(index as integer,bytestotal as long)过程里
winsock(0).getdata getdata, vbstring
if getdata ="a" then
winsock(1).senddata "b"
end if
End If
其他连接,侦听可以参看msdn
zqfleaf 2003-08-21
  • 打赏
  • 举报
回复
客户端:
http://www.applevb.com/sourcecode/chatclnt.zip
服务端:
http://www.applevb.com/sourcecode/chatserv.zip
qingming81 2003-08-21
  • 打赏
  • 举报
回复
我没有做过,但你可以搜索一下以前的帖子,有关局域网的通讯应该可以实现。
ftp0697 2003-08-21
  • 打赏
  • 举报
回复
用TCP/IP,用winsock控件数组,比如用winsock(0)读a的数据,用winsock(1)发出
kyc2001 2003-08-21
  • 打赏
  • 举报
回复
sos
sufan 2003-08-21
  • 打赏
  • 举报
回复
帮忙呀

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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