package network05;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Sever {
public static void main(String[] args) {
ServerSocket ss =null;
Socket s= null;
try {
ss =new ServerSocket(5858);
while(true){
s =ss.accept();//来一个就创建一个Socket对象
new Sever_Socket(s).run();;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(ss!=null)ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class Sever_Socket{
private Socket s =null;
BufferedReader br;
PrintWriter pw;
String name;
public Sever_Socket(Socket s) throws IOException {
this.s =s;
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
pw=new PrintWriter(s.getOutputStream(),true);
name=s.getInetAddress().getHostAddress()+":"+s.getPort();
System.out.println(name+"已经连接上");
}
public void receive() throws IOException{
String str = null;
while((str=br.readLine())!=null){
if(str.equalsIgnoreCase("quite")){
//关闭,进行资源的释放
pw.println("close");
break;
}
System.out.println(name+"--"+str);
pw.println("Receive"+str);
}
System.out.println(name+"已经离开");
}
public void run(){
try {
while(true){
receive();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(s!=null)s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
java网络编程关于循环结构的困惑
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 砸死接触 2017-08-11 03:35关注
你贴的代码和你的图片内容不太一致, 代码中的Sever_Socket并不是线程,这样是不行的。
图片中的while(true)是为了保持长连接,可以持续接收信息,这样你的客户端发了一个信息之后,这个链接不会断,可以继续发信息。
如果没有while(true),发一次就要连接一次。
你说的确实对,‘有没有都可以运行’,但是你用socket的目的不是一次性回话,是要保持连接!!!!解决 无用评论 打赏 举报
悬赏问题
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)