


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、客户端:package mutil;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import .Socket;import javax.swing.JTextArea;public class ClienThread extends Threadprivate Socket socket = null;private javax.swing.JTextArea jTextArea1;public Clien
2、Thread(JTextArea jTextArea1) this.jTextArea1 = jTextArea1;public void run()try/ 创建连接 socket = new Socket("", 12344); String message = null; while (true)/ 接受服务端请求 message = receive();/ 显示到消息接收框if (message != null && !message.equals("")if (this.jTextArea1.getText() = null|
3、this.jTextArea1.getText().equals("") this.jTextArea1.setText(" 服务端: " + message); else this.jTextArea1.setText(this.jTextArea1.getText() + "n 服务端: " + message); else message = "服务端以断开连接或未连接! "if (this.jTextArea1.getText() = null| this.jTextArea1.getText().equa
4、ls("") this.jTextArea1.setText(" 服务端: " + message); else this.jTextArea1.setText(this.jTextArea1.getText()+ "n 服务端: " + message); break; catch (IOException e)/ TODO Auto-generated catch block e.printStackTrace();*/向服务端发送消息public void send(String message)tryPrintWriter p
5、rintWriter = new PrintWriter(socket.getOutputStream(); printWriter.write(message + "n");printWriter.flush(); catch (IOException e)/ TODO Auto-generated catch blocke.printStackTrace();* 接受服务端消息*/ public String receive() String message = ""tryBufferedReader bufferedReader = new Buf
6、feredReader(new InputStreamReader(socket.getInputStream();message = bufferedReader.readLine(); catch (IOException e)System.out.println(" 服务端已断开或未连接! ");return message;服务端:package mutil;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.
7、PrintWriter;import .ServerSocket;import .Socket;import javax.swing.JTextArea;public class ServerThread extends Threadprivate Socket socket = null;private ServerSocket serverSocket = null;private javax.swing.JTextArea jTextArea1;public ServerThread(JTextArea jTextArea1) this.jTextArea1 = jTextArea1;p
8、ublic void run()try/ 创建连接 serverSocket = new ServerSocket(12344);/ 监听客户连接 socket = serverSocket.accept(); String message = null; while (true)/ 接受客户请求 message = receive(socket);if (message != null && !message.equals("") / 显示到消息接收框if (this.jTextArea1.getText() = null| this.jTextArea1
9、.getText().equals("") this.jTextArea1.setText(" 客户端: " + message); else this.jTextArea1.setText(this.jTextArea1.getText() + "n 客户端: " + message); else message = "客户端以断开连接或未连接! " if (this.jTextArea1.getText() = null| this.jTextArea1.getText().equals(""
10、;) this.jTextArea1.setText(" 客户端: " + message); else this.jTextArea1.setText(this.jTextArea1.getText() + "n 客户端: " + message); break; catch (IOException e)/ TODO Auto-generated catch block e.printStackTrace();/* 向客户端发送消息*/public void send(String message)tryPrintWriter printWriter
11、 = new PrintWriter(socket.getOutputStream(); printWriter.write(message + "n");printWriter.flush(); catch (IOException e)/ TODO Auto-generated catch blocke.printStackTrace();/* 接受客户端消息*/public String receive(Socket socket)String message = ""tryBufferedReader bufferedReader = new B
12、ufferedReader(new InputStreamReader(socket.getInputStream();message = bufferedReader.readLine(); catch (IOException e)System.out.println(" 服务端已断开或未连接! ");return message;服务端界面:/* SereveFrame.java* Created on _DA TE_, _TIME_*/ package com.insigma.frame;import mutil.ServerThread;* author _USE
13、R_*/public class ServerFrame extends javax.swing.JFrame private ServerThread serverThread;/* Creates new form SereveFrame */ public ServerFrame()initComponents();serverThread = new ServerThread(this.jTextArea1); serverThread.start();* This method is called from within the constructor to initialize t
14、he form.* WARNING: Do NOT modify this code. The content of this method is always* regenerated by the Form Editor.*/ GEN-BEGIN:initComponents/ <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents()jScrollPane1 = new javax.swing.JScrollPane
15、(); jTextArea1 = new javax.swing.JTextArea();jScrollPane2 = new javax.swing.JScrollPane(); jTextArea2 = new javax.swing.JTextArea(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("u670du52
16、a1u7aef");setBackground(new java.awt.Color(153, 153, 255);jTextArea1.setColumns(20); jTextArea1.setRows(5);jScrollPane1.setViewportView(jTextArea1);jTextArea2.setColumns(20); jTextArea2.setRows(5); jScrollPane2.setViewportView(jTextArea2);jButton1.setText("u53d6u6d88");jButton1.addAct
17、ionListener(new java.awt.event.ActionListener()public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt););jButton2.setText("u53d1u9001");jButton2.addActionListener(new java.awt.event.ActionListener()public void actionPerformed(java.awt.event.ActionEvent evt)
18、 jButton2ActionPerformed(evt););javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane();getContentPane().setLayout(layout); layout.setHorizontalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap
19、().addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING ,layout.createSequentialGroup().addComponent(jButton1).addGap(18, 18,18) .addComponent( jButton2).addGap(35, 35,35).addGroup(layout.createSequentialGroup().addCompon
20、ent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,377,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_V ALUE).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addComponent(jScrollPane2,javax.swing.GroupLay
21、out.DEFAULT_SIZE,377,Short.MAX_V ALUE).addContainerGap();layout.setVerticalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 242,javax.swing.GroupL
22、ayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(jScrollPane2,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swi
23、ng.GroupLayout.Alignment.BASELINE).addComponent(jButton2) .addComponent(jButton1) .addContainerGap();pack();/ </editor-fold>/ GEN-END:initComponents* 取消* param evt*/private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) this.jTextArea2.setText("");* 发送* param evt*/priva
24、te void jButton2ActionPerformed(java.awt.event.ActionEvent evt) / 向客户端发消息String message = this.jTextArea2.getText(); if (message != null && !message.equals("") serverThread.send(message);/ 清空消息输入框 this.jTextArea2.setText("");/ 显示到消息接收框if (this.jTextArea1.getText() = null|
25、 this.jTextArea1.getText().equals("") this.jTextArea1.setText(" 我说: " + message); else this.jTextArea1.setText(this.jTextArea1.getText() + "n 我说: " + message);* param args*the command line arguments*/ public static void main(String args) java.awt.EventQueue.invokeLater(
26、new Runnable()public void run()new ServerFrame().setVisible(true););/ GEN-BEGIN:variables/ Variables declaration - do not modifyprivate javax.swing.JButton jButton1;private javax.swing.JButton jButton2;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JScrollPane jScrollPane2;private
27、javax.swing.JTextArea jTextArea1;private javax.swing.JTextArea jTextArea2;/ End of variables declaration/GEN-END:variables 客户端界面:/* ClienFrame.java* Created on _DA TE_, _TIME */package com.insigma.frame;import mutil.ClienThread;/* author _USER_*/public class ClienFrame extends javax.swing.JFrame pri
28、vate ClienThread clienThread;/* Creates new form ClienFrame */ public ClienFrame()initComponents(); clienThread = new ClienThread(this.jTextArea1); clienThread.start();* This method is called from within the constructor to initialize the form.* WARNING: Do NOT modify this code. The content of this m
29、ethod is always* regenerated by the Form Editor.*/ GEN-BEGIN:initComponents/ <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents()jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea();jScrollPane2 = new j
30、avax.swing.JScrollPane(); jTextArea2 = new javax.swing.JTextArea(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("u5ba2u6237u7aef");setBackground(new java.awt.Color(153, 153, 255);jT
31、extArea1.setColumns(20);jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1);jTextArea2.setColumns(20);jTextArea2.setRows(5); jScrollPane2.setViewportView(jTextArea2);jButton1.setText("u53d6u6d88");jButton1.addActionListener(new java.awt.event.ActionListener()public void actionP
32、erformed(java.awt.event.ActionEvent evt)jButton1ActionPerformed(evt););jButton2.setText("u53d1u9001");jButton2.addActionListener(new java.awt.event.ActionListener()public void actionPerformed(java.awt.event.ActionEvent evt)jButton2ActionPerformed(evt););javax.swing.GroupLayout layout = new
33、 javax.swing.GroupLayout( getContentPane();getContentPane().setLayout(layout);layout.setHorizontalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
34、ent.LEADING).addComponent( jScrollPane1,javax.swing.GroupLayout.DEFAULT_SIZE,376, Short.MAX_V ALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addComponent(jButton1).addGap(18, 18, 18) .addComponent(jButton2).addGap(25, 25, 25) .addComponent(jScrollPane2,java
35、x.swing.GroupLayout.Alignment.TRAILING,javax.swing.GroupLayout.DEFAULT_SIZE,376, Short.MAX_V ALUE) .addContainerGap();layout.setVerticalGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().ad
36、dContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_V ALUE).addGap(18, 18, 18) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jButton1) .addComponent(jButton2) .addContainerGap(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》题库检测题型【能力提升】附答案详解
- 水产养殖业质量监管创新创业项目商业计划书
- 新时期水旱灾害防御思路与举措水利部水旱灾害防御司
- 2025年教师招聘之《小学教师招聘》题库高频难、易错点100题模拟试题带答案详解(轻巧夺冠)
- 2025年教师招聘之《幼儿教师招聘》预测试题及完整答案详解
- 2025内蒙古呼伦贝尔农垦谢尔塔拉农牧场有限公司招聘45人笔试及完整答案详解一套
- 教师招聘之《小学教师招聘》考试历年机考真题集附答案详解【综合卷】
- 演出经纪人之《演出经纪实务》能力提升题库(培优b卷)附答案详解
- 2025年教师招聘之《小学教师招聘》题库综合试卷及答案详解(全优)
- 教师招聘之《幼儿教师招聘》高分题库含答案详解【模拟题】
- 部编版六年级语文上册重点难点解析
- 重庆市南开中学高2026届高三第一次质量检测+化学答案
- 肖婷民法总则教学课件
- 教育培训课程开发与实施指南模板
- 2025保密协议范本:物流行业货物信息保密
- 2025卫星互联网承载网技术白皮书-未来网络发展大会
- 顺丰转正考试题库及答案
- 半导体行业面试问题及答案解析
- 《研学旅行课程设计与实施》全套教学课件
- DB15T 2618-2022 公路工程工地试验室建设与管理规范
- 2025至2030年中国绿色船舶行业发展前景预测及投资方向研究报告
评论
0/150
提交评论