s-day11-TCP服务器端代码的实现
This commit is contained in:
@@ -39,6 +39,7 @@ public class TcpClientDemo06 {
|
||||
//一次读取一个字节数组
|
||||
byte[] bytes = new byte[1024];
|
||||
int len;
|
||||
System.out.println("服务器响应的数据为:");
|
||||
while ((len = is.read(bytes)) != -1) {
|
||||
System.out.println(new String(bytes,0,len));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.inmind.tcp03;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
|
||||
/*
|
||||
TCP服务器端代码的实现
|
||||
在java中使用类ServerSocket表示服务器
|
||||
|
||||
构造方法:
|
||||
ServerSocket(int port) 创建绑定到指定端口的服务器套接字。
|
||||
参数port:服务器软件的端口号
|
||||
|
||||
常用方法:
|
||||
Socket accept() 接收客户端的请求,还将客户端的请求数据封装到服务器的Socket对象返回值中
|
||||
InetAddress getInetAddress() 返回套接字所连接的地址。
|
||||
InputStream getInputStream() 返回此套接字的输入流.(接收请求数据的)
|
||||
OutputStream getOutputStream() 返回此套接字的输出流。 (发送响应数据)
|
||||
void close() 关闭此套接字。
|
||||
服务器的实现步骤:
|
||||
1.创建服务器对象
|
||||
2.接收客户端请求
|
||||
3.获取请求数据
|
||||
4.业务逻辑代码
|
||||
5.发送响应数据
|
||||
6.释放资源
|
||||
*/
|
||||
public class TcpServerDemo07 {
|
||||
public static void main(String[] args) throws Exception {
|
||||
//1.创建服务器对象
|
||||
ServerSocket serverSocket = new ServerSocket(10024);
|
||||
//2.接收客户端请求
|
||||
Socket socket = serverSocket.accept();//阻塞的方法,等待客户端发来请求
|
||||
System.out.println(socket.getInetAddress());//获取客户端的ip地址
|
||||
//3.获取请求数据
|
||||
InputStream is = socket.getInputStream();
|
||||
//一次读取一个字节数组
|
||||
byte[] bytes = new byte[1024];
|
||||
int len;
|
||||
System.out.println("客户端请求数据为:");
|
||||
while ((len = is.read(bytes)) != -1) {
|
||||
System.out.println(new String(bytes,0,len));//请求数据的展示
|
||||
}
|
||||
//4.业务逻辑代码
|
||||
String result = "www.taobao.com";//要响应的数据
|
||||
//5.发送响应数据
|
||||
OutputStream os = socket.getOutputStream();
|
||||
os.write(result.getBytes());
|
||||
//6.释放资源
|
||||
socket.close();
|
||||
serverSocket.close();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user