一个Socket编程人人都会遇见的一个问题。

tongqingchao 2003-09-09 06:26:56
这是一个N个客户端,一个服务端,使用客户端发送消息到服务器端,服务端如何反馈消息到这个发送消息的客户端???
高手帮忙!!欢迎大家加入QQ-BCB讨论群:123033
...全文
12 点赞 收藏 31
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xujie839997 2003-10-08
mark
回复
tongqingchao 2003-09-10
当第一个客户端连接时~Socket->Connections[i]
中的i加1,结果客户端1没有输入帐号密码,
这时候客户端2连接拉Socket->Connections[i]
中的i变成拉2这时候突然客户端1输入帐号秘密拉~客户端1连接成功~~
当服务端返回客户端1连接成功的消息时,服务器端的i已经变成拉2结果登陆成功的消息发送到拉客户端2上~怎么解决这个问题呢??
回复
tongqingchao 2003-09-10
当第一个客户端连接时~Socket->Connections[i]
中的i加1,结果客户端1没有输入帐号密码,
这时候客户端2连接拉Socket->Connections[i]
中的i变成拉2这时候突然客户端1输入帐号秘密拉~客户端1连接成功~~
当服务端返回客户端1连接成功的消息时,服务器端的i已经变成拉2结果登陆成功的消息发送到拉客户端2上~怎么解决这个问题呢??
回复
tongqingchao 2003-09-10
子寒你有QQ吗??加我好吗我的是:82865
当第一个客户端连接时~Socket->Connections[i]
中的i加1,结果客户端1没有输入帐号密码,
这时候客户端2连接拉Socket->Connections[i]
中的i变成拉2这时候突然客户端1输入帐号秘密拉~客户端1连接成功~~
当服务端返回客户端1连接成功的消息时,服务器端的i已经变成拉2结果登陆成功的消息发送到拉客户端2上~怎么解决这个问题呢??
回复
Robin 2003-09-10
:>
回复
tongqingchao 2003-09-10
晕死拉!!~~
我说真的~不要开玩笑~我没钱!
回复
invalid 2003-09-10
有没有简单~快捷~~好用的~方法 ~~~~~~~
那就是再雇佣一个程序员。
回复
tongqingchao 2003-09-10
有没有简单~快捷~~好用的~方法 ~~~~~~~
回复
limlzm 2003-09-10
kingcaiyao(AKing) 给那个程序就讲解得很清楚了。
回复
he_Fly 2003-09-10
如果是客户端发送一个请求包,服务端经过一系列检测,马上返回信息包,那么你直接在RECV的事件里写发送就可以了,如果服务端要主动发送信息包给客户端,那么可以在客户端建立连接后,先发送一个登记包,可以是结构体,里面包含帐号和IP,如:到了时间,我要发送一个断开包给客户端,那么先查询你的结构体,找到要断开帐号的IP,然后在CONNECTIONS数组中找到对应IP,发送断开信息包。
回复
tongqingchao 2003-09-10
那有关于IDHTTP用法的文章呢
回复
stsrj 2003-09-10
回复人: tongqingchao(小超) ( ) 信誉:100 2003-09-09 18:49:00 得分:0


我不想用TCP呀!!!我就想用 SOCKET


???????????????????????????????????????????/
回复
invalid 2003-09-10
又:不要到处张贴你的问题。
回复
invalid 2003-09-10
搜索论坛中的老帖子看看,先把基础知识补充一下。
回复
zihan 2003-09-09
Accept主要表示同意客户端的连接,如果Accept为False,那就表示不同意客户端的连接!ClientRead表示接受到客户端的数据时候触发的事件
回复
tongqingchao 2003-09-09
ServerSocket1ClientRead
这是什么事件!!他和Accept有什么区别呀
Accept主要用来干吗的
回复
ThinkX 2003-09-09
同意kingcaiyao(AKing),TCP是面向连接的协议,在Server用accept接受一个client连接请求时就会返回一个代表Client的socket,可以用它向Client发送数据。也就是说在tcp连接的双方都拥有一个代表对方的socket,以此向对方发送信息。
回复
kingcaiyao 2003-09-09
楼主,你根本不理解socket,socket只是一个套接字(只是提供程序员进行网络编程的一个手段),任何通讯都是要协议的。
我已经说得很清楚了,到底是你晕还是我们晕,TCP是面向连接的协议,只要是客户端主动发起请求,一旦与服务器连接就会有一条链路,在这条链路上数据是可以双向的,也就是你所说的回写反馈消息,这是完全可以的,你看看我的这段代码:
http://www.csdn.net/develop/read_article.asp?id=19883
我的这段代码是将客户端发到服务器的内容,原封不动地由服务器反馈给客户端,我这里面实现TCP和UDP两种协议。
回复
tongqingchao 2003-09-09
晕死拉!没人来救我拉~
我看我要开始摇滚拉!!!
回复
tongqingchao 2003-09-09
我基本上已经做成拉~~后来才发现有问题的~
我的程序主要是一上来当运行时就激活拉SOCKET进行与服务器连接,
结果~就出问题拉~~
同时运行2个客户端,我在服务器端拉凡是连接就在COUT=COUT+1;
这样当我连接2个用户的使用COUT=2;
这样当我~~第1个客户填写帐号密码的时候~
当服务器段严整通过的时候~消息就这样子Connections[COUT-1]->SendText发给我的客户端2
大家说怎么解决呢!!!有没有更好的办法!呀~
回复
加载更多回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
网络及通讯开发
创建于2007-08-02

1299

社区成员

C++ Builder 网络及通讯开发
申请成为版主
帖子事件
创建了帖子
2003-09-09 06:26
社区公告
暂无公告