返回
沈阳市和平区爱尚职业
置顶
招生热线:400-800-2178

学校地址:沈阳市中山路349号

Java Socket 编程原理

75 2018-06-29 09:08:55

学习笔记

事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于爱尚沈阳java培训的学员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Java Socket编程就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了。

Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上的数据的传递。在java中,有专门的socket类来处理用户的请求和响应。利用SOCKET类的方法,就可以实现两台计算机之间的通讯。这里爱尚沈阳java培训就介绍一下在JAVA中如何利用socket进行网络编程。


建立服务器类

Java中有一个专门用来建立Socket服务器的类,名叫ServerSocket,可以用服务器需要使用的端口号作为参数来创建服务器对象。

ServerSocket server = new ServerSocket(9998)

这条语句创建了一个服务器对象,这个服务器使用9998号端口。当一个客户端程序建立一个Socket连接,所连接的端口号为9998时,服务器对象server便响应这个连接,并且server.accept()方法会创建一个Socket对象。服务器端便可以利用这个Socket对象与客户进行通讯。

Socket incoming = server.accept()

进而得到输入流和输出流,并进行封装

BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));

PrintWriter out = new PrintWriter(incoming.getOutputStream(),true);

随后,就可以使用in.readLine()方法得到客户端的输入,也可以使用out.println()方法向客户端发送数据。从而可以根据程序的需要对客户端的不同请求进行回应。

在所有通讯结束以后应该关闭这两个数据流,关闭的顺序是先关闭输出流,再关闭输入流,即使用:

out.close();

in.close();


客户端和服务端同时读和写

前面爱尚沈阳java培训老师已经说了Socket之间是双向通信的,它既可以接收数据,同时也可以发送数据。

服务端代码

public class Server {

public static void main(String args[]) throws IOException {

//为了简单起见,所有的异常信息都往外抛

int port = 8899;

//定义一个ServerSocket在端口8899上

ServerSocket server = new ServerSocket(port);

//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的

Socket socket = server.accept();

//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。

Reader reader = new InputStreamReader(socket.getInputStream());

char chars[] = new char[64];

int len;

StringBuilder sb = new StringBuilder();

while ((len=reader.read(chars)) != -1) {

sb.append(new String(chars, 0, len));

}

System.out.println("from client: " + sb);

//读完后写一句

Writer writer = new OutputStreamWriter(socket.getOutputStream());

writer.write("Hello Client.");

writer.flush();

writer.close();

reader.close();

socket.close();

server.close();

}

}

文中图片素材来源网络,如有侵权请联系删除
来源:沈阳市和平区爱尚职业培训机构

免费提供问答解答,帮您轻松解决难题

热门课程 全部课程

热门动态

申请免费试听

只要一个电话

我们为您免费回电

立即申请
刷新
图形验证
关闭
>>
拖动左边滑块完成上方拼图