写一个自己的“服务器"

TCP之服务端

个人理解

许多时候博客都只是给了我们代码,而没有先给我们思路和方法

这里实现的是通过IP地址和端口在浏览器以及在cmd中访问自己的服务端

先有思路后有代码

1、建立socket连接
2、创建输入输出流
3、开启while循环或线程,用输入流读取信息 防止socket连接关闭
4、实现按行读取信息

建立连接

有这两条语句就,运行之后别人就能通过IP地址和端口访问你了!

ServerSocket socket = new ServerSocket(8888);
Socket ss = socket.accept();

在没有客户端访问时,socket.accept();将会阻塞

建立通道

建立输入输出流,不关闭,进行事实对话
连接成功后可以给客户端发条消息

OutputStream outputStream = ss.getOutputStream();
InputStream inputStream = ss.getInputStream();
outputStream.write("欢迎访问服务器!".getBytes());

接收客户端信息

1、按字节客户端的消息
连接成功后需要开启线程或循环,不能让accept()断开

while (true) {
	int c = inputStream.read();
	System.out.print((char) c);
}

1、按行读取接收到的消息
i:把读取的字节写入字节数组输出流
ii:对换行进行处理
iii:把字节数组输出流转化为字节数组
iiii:字节数组转化为字符串,加上编码

while(truue){
	int c = inputStream.read();//先读取一个字节
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	while (c != '\n') {如果不是换行,就把读取的字节写入字节数组输出流
		bos.write(c);
		c = inputStream.read();
	}
}
byte bytes[] = bos.toByteArray();//把读取的流转化为字节数组
String msg = readline(new String(bytes, "gbk"));//

客户端访问

先运行程序
1、网页访问
客户端在浏览其中输入 IP:端口
在这里插入图片描述
网页端会给服务器发送这样一段信息
在这里插入图片描述
2、telnet访问
先打开电脑中的telnet客户端
在这里插入图片描述
然后在cmd中运行如下
在这里插入图片描述
这样就能给服务器实时或者回车键发送信息了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值