java 线程,socket 套接字,在线聊天(群组方式)

可看可不看最好看看的套话

说是要总结最近所学,但是目前正在痴迷于套接字和聊天软件的设计。还没完全做好,先来写写想法。也分几篇进行详谈吧。

首先先来讲讲套接字。说实话,我并不知道套接字的含义是啥,我也不知道为啥取这个名字,这个定义就是服务器之间的连接对象,是TCP连接。我看来就像一座桥,负责传递信息。

话不多说,来看看服务器端套接字的构建。

ServerSocket server;
server = new ServerSocket(9527);

这是基本的构建,9527就是服务器端口,如果用自己电脑来做服务器,就是开放你电脑的端口,这个端口的作用相当于一个处理器的部分,来处理事务的。(到客户端详谈)。

Socket socket=server.accept();

然后是.accept()方法,这个就是监听连接端,如果有了连接端,就会返回Socket这个桥,以便处理服务器和该客户端的交互信息。

InputStream in=socket.getInputStream();
InputStreamReader inr=new InputStreamReader(in);
BufferedReader bf=new BufferedReader(inr);
String str=bf.readLine();

这就是哦那个过服务器创建的输入流,这个可以向服务器发送消息,然后通过bf.redLine()获取这个消息。输出流,及output那个我就不写了,原理都是一样通过,socket来得到输出流,服务端给客户端发送信息。

下面是客户端的创建

Socket sk=new Socket("127.0.0.1",9527);

这是客户端的创建套接字,在此“127.0.0.1”大家都不陌生,本机ip,别人无法连接。这个想要别人连接你的服务端,改成本机的外网ip即可。本机的外网ip我就不说了,自行百度,一大堆。这里9527就是你服务器创建的端口,我相信大家看到这就懂了。

在此吧,这里如果连接,上面服务器的accept()这个函数就会执行进行连接。可以说吧这俩是一套的。

OutputStream op=sk.getOutputStream();
op.write("第一次访问服务器\n".getBytes("utf-8"));

然后,刚才说了,这次的代码可以通过客户端给服务器发送消息。在这创建一个输出流,我这里是op,然后op.write(),写入,“utf-8”看看就知道是编码格式了吧,这时候你就可以往上看bf.readLine()了。此处注明一点,加上“\n”的原因是bf.readLine();这里读取一行(恍然大悟)。所以像聊天记录一样输出换行你们还需要在读取到消息后在换行。这里别告诉我你们不懂"\n"是换行的意思啊"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章