博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对服务器的认识
阅读量:4683 次
发布时间:2019-06-09

本文共 792 字,大约阅读时间需要 2 分钟。

  我们的项目是通讯软件,里面用到了服务器。对于服务器,我们是使用一台电脑当做服务器,使用socket 类写。

  对于服务器,我们在开发的时候遇到了问题。首先是服务器的连接。我们采用电脑的ip地址,发现连接不到作为服务器的那台电脑。寻找原因之后知道是因为电脑的ip不是外网的,如果想要通过网络进行连接,需要使用外网的服务器,这就需要成本。所以,我们的解决方法是使用局域网来模拟互联网,在局域网内就可以不用外网服务器进行连接。不过这样软件就不能达到我们本来预期的不在同个局域网内也能通讯的功能。
  其次,我们发现在客户端发送的消息不知道服务器会将其转发给谁。在我们没有声明的情况下,服务器会对连接进来的所有客户端都发送消息。我们的解决方法是在客户端发送消息上服务器的时候,在前面加上自己的IP并用逗号内容隔开。因为我们的软件现在只是实现2部电脑的通讯,故把自己的ip给出后,就可以限制只向另一个IP发送消息。后期如果我们对项目进行完善,进行到多人对话,则我们想在服务器上建立一个表,来标记每个连进来的电脑的IP,然后发送的消息必须指明自己的消息发送给谁(用户名),在查表找到IP即可。
  最后,在我们进行测试的时候,发现如果对服务器发送中文,服务器会判断为乱码并无法正常显示。我们使用了UTF-8来转码,可还是没有成功。这是我们到现在还没有解决的问题,希望老师指导下。
  其实,服务器是一个中转站,是一个把信息来回转发的程序。如果程序本身可知道自己要把消息发送到哪个ip地址,那么完全可以不用服务器,直接进行发送。可是这样就会造成程序每次运行都要先确定IP的问题。比如我把笔记本移动到别的地方,运行程序后本来固定的IP变了,所以无法找到对方的程序。这是我们考虑后选择使用服务器的原因。

转载于:https://www.cnblogs.com/dragonest1995/p/5406239.html

你可能感兴趣的文章
2017.7.18总结
查看>>
c#基础学习(0627)之类型转换、算数运算符++、--
查看>>
08:Vigenère密码
查看>>
2010 求后序遍历
查看>>
C++和C#之间的数据类型对应关系
查看>>
模型分离(选做)
查看>>
LeetCode 242. Valid Anagram
查看>>
观察者模式------《Head First 设计模式》
查看>>
JSP表单提交乱码
查看>>
如何适应现代雇佣关系
查看>>
【BZOJ4592】[Shoi2015]脑洞治疗仪 线段树
查看>>
redis sentinel 读写分离
查看>>
团队项目(第五周)
查看>>
ElasticSearch6(三)-- Java API实现简单的增删改查
查看>>
选拔赛 I 点进来吧,这里有你想要的
查看>>
SQL 优化经验总结34条
查看>>
开源 视频会议 收藏
查看>>
核心J2EE模式 - 截取过滤器
查看>>
test1
查看>>
常见反函数、反函数导数(微分)公式
查看>>