只要链接就报错:
请输入:server,<port>或者:<ip>,<port>
192.168.174.1,8888
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at cxh.InetTest.GoodTCP.main(GoodTCP.java:122)
//发送消息线程 class Send1 extends Thread{ private Socket socket; private Scanner scanner; public Send1(Socket socket,Scanner scanner) { this.socket = socket; this.scanner = scanner; } public void run(){ this.sendMsg(); } //发送消息 public void sendMsg(){ PrintWriter pw = null; try{ //创建Scanner对象 scanner = new Scanner(System.in); //创建向对方输出消息的流对象 pw = new PrintWriter(this.socket.getOutputStream()); //发送消息 while (true){ String msg = scanner.nextLine(); pw.println(msg); pw.flush(); } }catch (Exception e){ e.printStackTrace(); }finally { if(scanner != null){ scanner.close(); } if(pw != null){ pw.close(); } if(this.socket != null){ try { this.socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } } /* * 接收消息的线程 * */ class Receive1 extends Thread{ private Socket socket; public Receive1(Socket socket){ this.socket = socket; } public void run() { this.receiveMsg(); } /* * 用于接收对方的消息 * */ private void receiveMsg(){ BufferedReader br = null; try{ //创建用于接收对方发送消息的流对象 br = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); while (true){ String msg = br.readLine(); System.out.println("他说:"+msg); } }catch (Exception e){ e.printStackTrace(); }finally { if(br != null){ try { br.close(); } catch (IOException e) { e.printStackTrace(); } if(this.socket != null){ try { this.socket.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(); } } } } }
老师,代码19行中port后面的冒号是英文为什么还是不对.还有一个语法问题,请问老师这个是什么问题.
老师,生成booleanflag=list.add("bjsxt");这里的快捷键是什么呀
老师问一下,视频里的有参方法是怎么沟造出来的?是快捷键还是什么?
(String[] args) { Map<UsersString> map = TreeMap<>()Users u = Users()Users u1 = Users()map.put(u)map.put(u1)Set<Users> keys = map.keySet()(Users key:keys){ System..println(key++map.get(key))} }
为什么最后map.get(key)的结果为null呢
课上说i4返回-1吗,但是我的是13,老师能说一下为啥吗?
老师,当有1,2两个线程进行操作时,1线程使用yield()方法进行让位时。下一次不管运行1线程,还是2线程应该都是50%的机会吧。因为当前两个线程都属于就绪状态,cpu调用应该是随机的吧。
老师,这个1,-1,0分别代表什么呀,TreeSet是怎么识别这个int返回值来排序的?
截屏2021-09-03 下午3.51.45.png
同楼上,一样的报错,不知原因
我看了下这个问题,添加了后运行时间特别的慢,这里系统是进行了什么操作才导致的,难道这是视频中没加的原因?
这里pw是节点流,br是处理流,应该要使用先开后关的规则吧,为什么依然先关的是br而不是pw呢
截屏2021-09-03 上午10.58.23.png
我试了下把flush放在while循环中,输出结果无差异,但运行时间变慢了很多,除了运行时间以外还有什么问题吗
老师,writeint()方法不是写入吗,怎么seek()+writeint()一起就是替换了呢?
感觉遍历二叉树的递归方法实在是太巧妙了,我自己是不可能想到的,我自己只能想到用循环的方法找到最左侧结点,然后再逐一找到其他结点。
不是很懂,1,2,3,4分别调用的是什么线程,主线程还是Alive类的那个线程?怎么区分的?
麻烦详细点
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637