Java 使用浏览器访问TCP服务端
程序员文章站
2022-07-03 17:27:25
...
(1)原理
(2)实现
public class uploadBSTCPServer {
public static void main(String[] args) throws IOException {
//创建服务器监听端口的ServerSocket
ServerSocket ss = new ServerSocket(8080);
while(true){
//判断客户端是否发送连接请求,与客户端建立连接,并获取Socket流
Socket socket = ss.accept();
//利用多线程实现服务器端并发处理客户端请求
new Thread(()->{
try {
InputStream is = socket.getInputStream();//获取socket中的网络输入流,与客户端socket相对应
BufferedReader br = new BufferedReader(new InputStreamReader(is));//将网络字节输入流转换为字符缓冲输入流
String s = br.readLine();//将客户端请求信息的第一行读取出来,GET /请求的html的地址 HTTP/1.1
String s1 = s.split(" ")[1];//获取html的地址
String path = s1.substring(1);//去除html地址中第一个【/】
OutputStream os = socket.getOutputStream();//向客户端回复消息
os.write("HTTP/1.1 200 OK\r\n".getBytes());
os.write("Content-Type:text/html\r\n".getBytes());
os.write("\r\n".getBytes());
FileInputStream fis = new FileInputStream(path);//绑定请求的html文件
byte[] bytes = new byte[1024];
int len = 0;
while((len=fis.read(bytes))!=-1){//读取请求的html文件
os.write(bytes,0,len);//将获取的html文件返回到客户端
}
fis.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
}
}
推荐阅读
-
电脑使用浏览器中打开网页提示请不要使用非法的url地址访问的原因及解决方法
-
Java跨语言调用,使用JNA访问Java外部接口
-
微信打不开链接并提示:如需浏览,请长按网址复制后使用浏览器访问?
-
[原创] CentOS7 下 OpenLDAP Server 安装和配置及使用 phpLDAPadmin 和 Java LDAP 访问 LDAP Server
-
基于句柄方式访问Java对象为啥会使用两个指针?
-
Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操作与hyperlink超链接的使用
-
java并发编程:Semaphore使用信号量控制对资源的N个副本的并发访问
-
java使用filter设置跨域访问
-
Java中使用TCP协议的Socket通信
-
Java 使用浏览器访问TCP服务端