老师,这里使用while(true)一直在死循环,那这个程序还怎么能往下运行呢?
也就是说,服务器建立了大量ServerSocket的监听端口,等待客服端的链接吗?
为什么这个@不需要放在中括号内呢?
还有就是我这个规则为什么不可以这么制定呢?[\\]不能表示限定此处只能用\\吗?那我应该怎么限定我https后面只能跟\\字符
在执行客户端的时候,出现了下面的异常
老师这个异常该怎么解决?
IDEA中咋样导jar包,可不可以给个详细教程?跪求跪求!
请问老师 为什么new线程的时候 要把socket对象传进去呢?
老师,能不能跟我解释一下,为什么我要打印a数组就会是这样啊
老师有没有API文档的下载地址啊
问题:
老师,为什么这里不使用Thread.sleep方法的话,会出现null?使用了就没有了
我写出来了
老师,请帮忙看看哪里错了
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * 创建发送消息线程 */ class send1 extends Thread{ private Socket socket; private Scanner scanner; public send1(Socket socket,Scanner scanner){ this.socket=socket; this.scanner=scanner; } @Override public void run() { this.sendMsg(); } /** * 创建发现消息方法 */ public void sendMsg(){ PrintWriter pw=null; try{ //创建发送信息流对象 pw=new PrintWriter(this.socket.getOutputStream()); while (true){ String str=scanner.nextLine(); pw.println(str); pw.flush(); } }catch (Exception e){ e.printStackTrace(); }finally { if(scanner!=null){ scanner.close(); } if(pw!=null){ pw.close(); } if(this.socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } } /** * 创建接受消息线程 */ class receive1 extends Thread{ private Socket socket; public receive1 (Socket socket){ this.socket=socket; } @Override public void run() { this.receiveMeg(); } /** * 用于接受对方消息的方法 */ public void receiveMeg(){ BufferedReader br=null; try{ br=new BufferedReader(new InputStreamReader(socket.getInputStream())); while (true){ String str= br.readLine(); System.out.println("对方说:"+str); } }catch (Exception e){ e.printStackTrace(); }finally { if(br!=null){ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } } public class GoodTCP { public static void main(String[] args) { Scanner scanner=null; ServerSocket serverSocket=null; Socket socket=null; try{ scanner=new Scanner(System.in); System.out.println("请输入:server,<port>或者<ip>,<port>"); String str=scanner.nextLine(); String[] arr=str.split(",");//用逗号分割内容 if("server".equals(arr[0])){ //启动服务器 System.out.println("TCP Server Listen at"+arr[1]+"...."); serverSocket=new ServerSocket(Integer.parseInt(arr[1])); socket=serverSocket.accept(); System.out.println("链接成功"); }else{ //启动客户端 socket=new Socket(arr[0],Integer.parseInt(arr[1])); System.out.println("链接成功"); } //启动发送消息线程 new send1(socket,scanner).start(); new receive1(socket).start(); }catch (Exception e){ e.printStackTrace(); }finally { if(serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
Iterator<String> iterator = list.iterator(); System.out.println("--------------------while-------------------------"); while(iterator.hasNext()){ //不要在一次循环中多次调用next方法。 String value = iterator.next(); if ("狗蛋".equals(value)){ iterator.remove(); } System.out.println(value); //错误示范 //System.out.println(iterator.next()); }
老师,为什么我的代码输出结果没有被删除呢;但是写一个else放在里面结果就正确了,为什么???执行顺序都是一样的呀?
shuffle()方法是把元素弄乱,实际应用中,有哪些用处?
请问中转站占用的内存是物理内存还是虚拟内存?
老师,您好。我的输出为什么有编码问题啊,代码如下
package com.xxzy.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; /** * 服务器 * @author 吉仁 * */ public class Test { public static void main(String[] args) { ServerSocket ss=null; Socket s=null; BufferedReader br=null; try{ ss=new ServerSocket(8888); s=ss.accept(); br=new BufferedReader(new InputStreamReader(s.getInputStream(),"utf-8")); String str=null; while((str=br.readLine())!=null) { System.out.println(str); } }catch(IOException e) { e.printStackTrace(); }finally { CloseTest.CloseAll(ss,s,br); } } }
信息打印入下:
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637