主题:9360网络连接的问题

  共有28934人关注过本帖    
帅哥哟,离线,有人找我吗?
bingdongcha
1楼 信息 | 搜索 | 邮箱


加好友 发短信
9360网络连接的问题  发帖心情 Post By:2013-4-25 10:45:00   [只看该作者]

购买的9360的开发板和底板,使用光盘中的网络程序step3_tcptest。目标板9360做服务器,开发主机做客户端。

问题是:只能有一个客户端可以连接到目标板9360服务器。用第二台电脑连接目标板9360服务器时,第一台电脑的连接就自动断了。

因为我们工程实际应用时,需要6台客户端连接。 这个可以满足么?可以给个例子么?万分感谢!!!!!


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
2楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-4-25 15:22:00   [只看该作者]

例程主要为提供测试和代码方面的参考,实际应用的时候需要根据具体的应用需求来编码。

tcp程序里,tcp server端通过accept函数得到的tcp client连接的SOCKET,然后通过send函数发送消息,recv来收消息,closesocket来关闭等。

例程里封装成了一个TCP的SERVER类,但是这个SERVER类只弄一个SOCKET m_sockets用来和客户端通信,这就等于是默认只和一个客户端通信。按你的需求,你需要至少6个这样的SOCKET,比如做成SOCKET m_sockets[6];然后创建6个线程,分别负责与6个客户端的通信。同时你在accept后,可以先判断当时有多少客户端已经连上了在用了,哪些SOCKET还未使用,如果连接已经满了,就可以直接closesocket拒绝客户端的连接。你还可以在accept后判断客户端的IP地址,然后决定是否closesocket。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
bingdongcha
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-4-25 16:29:00   [只看该作者]

谢谢,我大概明白了,还想请教下。在这个程序里有2个类TCPCustom_CETCPServer_CE

TCPCustom_CE类中的SocketDataThread线程是处理监听到的客户端的socket通讯事件的。

想了2个方法谢谢帮忙指点迷津。

第一个是您这个方法,在TCPServer_CE类中定义6个socket接收客服端连接,每ACCEPT 一个连接就创建一个线程处理通讯。这样可能就不需要TCPCustom_CE这个类了!!

 

第二个是用TCPCustom_CE定义6个对象处理来之6台客户端的请求和数据处理。感觉这个方法符合面向对象的理论。可TCPCustom_CE定义的6个对象,是不是每个对象都有一个自己的SocketDataThread线程来处理数据????

包含线程的类 定义对象后是否也同时创建了一个线程呢??如果创建了,那么各个对象的线程之间相互影响么??

 

 

[此贴子已经被作者于2013-4-25 16:31:08编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
4楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-4-26 14:25:00   [只看该作者]

这两个类只是例程封装的两个类,你完全可以根据你的需求自己封装你自己的TCP类,你可以自己定义你的类名,定义你的类的方法,以及你自己的收发线程名,你希望封装成多少个类都是你自己决定的。
如果你只是希望改动最少的代码,你可以把例程里SOCKET m_sockets;改成SOCKET m_sockets[6];然后依次accept,然后收发线程也需要6个,传入线程的参数也要修改下,线程需要知道自己对应的是哪个SOCKET,即哪个TCP客户端,还有些别的地方也要做相应的修改。
我还是建议你重头写个,这样更容易理解些。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

9360网络连接的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: