headfirstjava最新版本下载_读过HeadFirstJava的大神进来看看
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
线程一章有个聊天程序,我运行之后客户端没将服务器的内容显示在JTextArea中,求解答
客户端程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class SimpleChatClientA {
JTextArea incoming;
JTextField outgoing;
BufferedReader reader;
PrintWriter writer;
Socket sock;
public void go(){
JFrame frame = new JFrame("Ludicrously Simple Chat Client");
JPanel mainPanel = new JPanel();
incoming = new JTextArea(15,50);
incoming.setLineWrap(true);
incoming.setWrapStyleWord(true);
incoming.setEditable(false);
JScrollPane qScroller = new JScrollPane(incoming);
qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
outgoing = new JTextField(20);
JButton sendButton = new JButton("send");
sendButton.addActionListener(new SendButtonListener());
mainPanel.add(qScroller);
mainPanel.add(outgoing);
mainPanel.add(sendButton);
Thread readerThread = new Thread(new IncomingReader());
readerThread.start();
frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
setUpNetworking();
frame.setSize(400,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void setUpNetworking(){
try{
sock = new Socket("127.0.0.1",5000);
InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(streamReader);
writer = new PrintWriter(sock.getOutputStream());
System.out.println("networking established");
}catch(IOException ex){
ex.printStackTrace();
}
}
public class SendButtonListener implements ActionListener{
public void actionPerformed(ActionEvent ev){
try{
writer.println(outgoing.getText());
writer.flush();
}catch(Exception ex){
ex.printStackTrace();
}
outgoing.setText("");
outgoing.requestFocus();
}
}
public class IncomingReader implements Runnable{
public void run(){
String message;
try{
while((message = reader.readLine())!=null){
System.out.println("read "+message);
incoming.append(message+"\n");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public static void main(String[] args){
new SimpleChatClientA().go();
}
}
服务器程序
import java.io.*;
import java.net.*;
import java.util.*;
public class VerySimpleChatServer {
ArrayList clientOutputStreams;
public class ClientHandler implements Runnable{
BufferedReader reader;
Socket sock;
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(isReader);
}catch(Exception ex){
ex.printStackTrace();
}
}
public void run(){
String message;
try{
while((message = reader.readLine())!=null){
System.out.println("read $"+message);
tellEveryone(message);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public static void main(String[] args){
new VerySimpleChatServer().go();
}
public void go(){
clientOutputStreams = new ArrayList();
try{
ServerSocket serverSock = new ServerSocket(5000);
while(true){
Socket clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
public void tellEveryone(String message){
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()){
try{
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
headfirstjava最新版本下载_读过HeadFirstJava的大神进来看看相关推荐
- PROTEUS最新版本下载CSDN_最强大冒险二游戏下载最新版本下载_抖音最强大冒险二测试版游戏下载最新版本 v1.0...
最强大冒险二游戏下载最新版本是一款趣味冒险的游戏,各种经历的人生,体验到无限的乐趣分享,超刺激的挑战玩法,各种冒险的经历过程,每次都能感受到最佳的刺激表现,界面的功能,对于你们的帮助作用也是相当的大, ...
- 华为 模拟器 linux,华为ensp模拟器最新版本下载_华为ensp模拟器3264位官方版下载V1.3.00.100 - 系统之家...
华为交换机模拟器ensp是图形化网络仿真平台,完美呈现真实设备实景(包括华为最新的ARG3路由器和X7系列的交换机),支持大型网络模拟,让你有机会在没有真实设备的情况下也能够实验测试,学习网络技术,了 ...
- 【开发环境】Mac 中安装 Python3 最新版本 ( 下载 Python 最新版本 | 安装 Python3 | 验证 Python3 )
文章目录 一.下载 Python 最新版本 二.安装 Python3 三.验证 Python3 一.下载 Python 最新版本 下载 最新 Python 版本 ; 进入 Python 主页 http ...
- echarts4.8.0最新版本下载,亲测可用
echarts4.8.0最新版本下载: 百度网盘: https://pan.baidu.com/s/1UTw6mHwXzuBWT5lnYfMLAg 提取码:9vqv
- android 9下载地址,狂野飙车9安卓版下载地址 最新版本下载
标签: 解锁 狂野飙车9安卓版下载地址 最新版本下载 好消息,时隔六年,狂野飙车系列最新续作<狂野飙车9:竞速传奇>国服版终于与大家见面啦!九游平台将为大家提供狂野飙车9安卓版的下载资源, ...
- Visual Studio 2017 version 15.9 官方最新版本下载(含那个啥码)
Visual Studio 2017 version 15.9 官方最新版本下载 (含那个啥码) 简单介绍,VS2017有3个版本: ①community,社区版,含基本的开发功能,免费!免费!免费! ...
- 一键ghost【onekey ghost】最新版本下载,一键ghost官网
一键ghost[onekey ghost]最新版本下载,一键ghost官网 一键ghost[onekey ghost]最新版本下载,一键ghost官网 posted on 2013-11-09 23: ...
- QT最新版本下载安装(QT5.15及QT6.X)
QT最新版本下载及安装 包含了QT环境和QT Creator集成开发环境(IDE) 下载 (QT5.15及之后版本不再支持离线安装) 5.14及之前版本下载 QT5.15及之后版本下载 QT5.15及 ...
- bugzilla 最新版本下载 3.01 增加更多新功能
bugzilla 最新版本下载 3.01 增加更多新功能 内容来自bugzila 官方站点,本站定期与bugzilla.org官方站点同步数据 最新本站下载 http:// Release Notes ...
最新文章
- 源文件封装为IP的步骤
- linux sort 源码_Linux: 史上最全的sort命令案例,打包带走吧
- Linux Named 进程启动、停止脚本
- python登陆,注册小程序
- 三种复方门冬维甘滴眼液的抗菌能力比较
- Redis集群安装及配置步骤
- C# Base64方式的编码与解码
- 从三流本科到北京985高校研究生,这是我走过的四年
- 华三 h3c DHCP
- 用Hough投票做物体检测的3篇文献
- 关于python随机抽取各类型不重复值的思考(sample与randint的区别)
- 100项PPT制作技术
- 让 CPU 告诉你硬盘和网络到底有多慢 1
- 奇*信往期秋招笔试知识点总结
- 【Pyecharts50例】添加背景图片/Logo
- Guest用户如何切换到administrator用户桌面
- 女孩取名:带日字旁好听有内涵的女孩名字
- win10快捷键【常用】桌面切换等快捷键
- Python爬虫之爬取笔趣阁小说下载到本地文件并且存储到数据库
- 分析总结:关于上海开饭店的成本和利润核算
热门文章
- 2345王牌浏览器九宫格个性化设置
- ie浏览器发送错误报告提示怎么关闭
- Easyui+Spring+Mybatis完整示例(后台)
- java 位运算 权限控制_java 位运算权限管控(转载)
- springboot如何使用log4j记录日志
- win7 找不到 计算机策略组,win7打开组策略报错:找不到资源string.Advanced_EnableSSL3Fallback...
- LeetCode.31 下一个排列
- mysql免安装出现1067_mysql,免安装,1067错误
- 背景图层和普通图层的区别_图层样式(一)—高级混合选项
- c语言数据交换的算法流程图,C语言冒泡排序算法浅析