想巩固一下J2SE的内容,最终决定做一个模仿QQ的聊天程序,因为这个小程序里几乎包含了J2SE的大部分知识。有人会说:你这不就是个C/S的通讯吗。 你这个不就是个什么什么吗。
是的,我这个就是一个小东西,因为不会所以我才做动手做。 我程序的大概思路是:某一个用户登录,通过服务器把自己的信息和在线好友的信息全部下载到本地,这里好友的信息包括Socket的一部分内容,我想在某一个用户发起对好友会话时候新new一个TCP或UDP的链接。
但是,目前看来是不可以的,因为如果这么做的话,对方要是走路由器的话,那么信息就不会接收到。 于是我想到用服务器进行转发(这里我不知道腾讯是不是这么做的,用服务器转发消息?如果知道的朋友可以告诉我一下)
因为用服务器转发是在服务器端保留用户的Socket信息,通过getOutPutStream来进行通讯;所以我还有另一种想法:
客户登陆时候我保存一些信息,那么我可不可以用这些信息给转变成一个Socket呢?
也就是强制类型转换,这样的话我就可以把信息存到数据库中,等某个用户需要时再从数据库中拿出相关信息 进行类型转换,变成Socket。 我的问题就是:1.这种类型转换可能实现么?如何实现?
2.腾讯公司是用服务器转发消息吗? 在这里先谢谢各位!
是的,我这个就是一个小东西,因为不会所以我才做动手做。 我程序的大概思路是:某一个用户登录,通过服务器把自己的信息和在线好友的信息全部下载到本地,这里好友的信息包括Socket的一部分内容,我想在某一个用户发起对好友会话时候新new一个TCP或UDP的链接。
但是,目前看来是不可以的,因为如果这么做的话,对方要是走路由器的话,那么信息就不会接收到。 于是我想到用服务器进行转发(这里我不知道腾讯是不是这么做的,用服务器转发消息?如果知道的朋友可以告诉我一下)
因为用服务器转发是在服务器端保留用户的Socket信息,通过getOutPutStream来进行通讯;所以我还有另一种想法:
客户登陆时候我保存一些信息,那么我可不可以用这些信息给转变成一个Socket呢?
也就是强制类型转换,这样的话我就可以把信息存到数据库中,等某个用户需要时再从数据库中拿出相关信息 进行类型转换,变成Socket。 我的问题就是:1.这种类型转换可能实现么?如何实现?
2.腾讯公司是用服务器转发消息吗? 在这里先谢谢各位!
API文档:socket是两台机器间通信的端点。 你第一句里说的客户登陆时候的信息保存为socket,应该是指客户端和服务器端之间的socket吧你第二句里说的拿出相关信息。你的意思是拿出表示客户端和服务器端连接的socket给那个“某个用户需要”里说的用户吗?
先谢谢你哈!你这个想法我大概能明白,是不是说你想在用户A成功登陆后 在自己的客户端起一个ServerSocket,之后吧这个对象发送到服务器,让服务器保留,当其他用户想与A通讯后 用这个服务器中保存的对象进行连接?
那如果是这样的话,为什么不直接让服务器保存A登陆后的一个Socket呢?这样的话也能达到同样的效果呀。
我想的是把A这个ServerSocket里的信息保存到数据库中,当B想用的时候在从数据库中取出来,再给包装成B所需要的对象。可是不知道能不能这么做