之前写的是一个工程,server端已经有人写好了
网络编程 至少涉及两个端(两个应用程序),通过网络访问连接
这两个应用程序一般在两台电脑上(分别占用不同的IP地址和不同的端口号,通过网络相连)
IP地址决定哪台电脑
端口号决定哪个应用程序
由客户端发出请求,服务器端接收请求并响应
请求数据的为客户端
启动的时候服务器端先启动,等待客户端的访问
客户端的输出流:服务器端的输入流(将客户流的数据带给服务器端)
服务器端的输出流转化为客户端的输入流
- 客户端
Socket(innetAddress,address,int port) 客户端
Socket(innetAddress,address,int port) 客户端
client.getinputStream();
client.getOutputStream();
flush() 是把缓冲区的数据强行输出
2. 服务器端
需要先启动,要占用端口号
ServerSocket(int port)
accept()等待有人连接,过程中不会向下进行程序,有用户连接的时候会返回一个socket对象(客户端请求的对象,不同的是输入输出流的改变)
close() 关闭服务器端Socket监听
Socket client = new Socket(“localhost”,80);// 如果连不上,这行代码会报错
向客户端发送数据:os = client.getOutputStream()
接收数据: is = client.getIntputStream()
关闭Socket连接
client.close()
推荐用字符流
使用字节流输出的时候要转发为string
服务器端:主要工作:
- 监听端口号
- 接客户连接accept
- 响应输入输出
- 关闭网络连接