摘要:
迭代器的方式会产生锁定 服务器端增加发送给每个客户端已收到信息的功能 所以当获取到一个socket,并打开它的线程进行循环接收客户端发来信息时,我们把这个内部类的线程Client保存到集合List<Client>中 然后在读取到客户端信息后,把这个信息发送给所有端口 通过循环 for(int i=0 阅读全文
摘要:
问题的原因是 while(connected) { String str=dis.readUTF(); System.out.println(str); } 不断循环执行,一直在死循环获取socket发送的信息, 使得前面的语句 s = ss.accept(); connected=true; 服务 阅读全文
摘要:
服务端对try catch finally重新进行了定义,当发生异常,主动提示,或关闭出现异常的socket 服务器端代码修改如下: 客户端换了一个OutputStream,使用DataOutputStream发送信息,dos.writeUTF(tf.getText()); 0.6版效果图 客户端代 阅读全文
摘要:
在了解指针前需要先了解一下什么是地址? 地址:内存地址,每个字节的编号,变量根据数据类型存储占相应空间,从首地址按照存储中用空间取出变量。 int i = 3; &(取地址运算符) i_pointer=&i; 什么是指针? 指针就是存放内存地址的变量。 一个变量的地址称为该变量的指针。 作用是什么? 阅读全文
摘要:
输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 b= 9 c=30 a>b 交换 a=9 b=18 可不可以用选择法?可不可以用冒泡法?但是这里用不 阅读全文
摘要:
没有解决问题之前客户端代码: 没有解决问题之前服务端代码: 演示过程 出现问题: java.net.SocketException: Socket is closed 如果不关闭流 把这句删掉bw.close(); 是可以的,程序不会出错,但总要关闭,可以在客户端窗口关闭的时候执行这句。 继续运行发 阅读全文
摘要:
建一个服务端类ChatServer,用于设置端口接收连接 客户端修改代码如下: 先把服务端类ChatServer运行 再运行客户端类ChatClientFrame2 运行 分别查看服务器端运行结果如下: 客户端运行结果如下: 客户端窗口打开时,光标位置 阅读全文
摘要:
方法一,使用匿名内部类的监听方法,因方法一致代码稍冗余 方法二,使用内部类方法 效果图如下: 阅读全文
摘要:
代码如下: 使用网格布局,则多个JPanel的大小是一样的,因为网格固定了大小 如果要调整JPanel的大小,需要使用BorderLayout布局方式,这也是默认的布局方式 聊天窗口中有一个basic面板,并在其上添加了三个面板,分别放在上中下三个位置; 下边的面板又添加了三个内容(标签、文本框和按 阅读全文
摘要:
建立Chat项目,并在项目中创建窗口类 效果如下图: 阅读全文