public class Client3 extends JFrame {static JTextArea area;JTextField field;JButton button;static PrintWriter writer;public Client3() {this.setTitle("客户端");this.setSize(400, 500);area= new JTextArea(25,30);field = new JTextField(20);button=new JButton("提交");JScrollPane sp =new JScrollPane(area);JPanel panel=new JPanel();this.add(sp,BorderLayout.CENTER);panel.add(field);panel.add(button);this.add(panel, BorderLayout.SOUTH);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {String text = field.getText();writer.println(text);area.append("我:"+text+"\n");field.setText("");}});}public static void main(String[] args) throws Exception{Client3 c =new Client3();Socket socket =new Socket("127.0.0.1",9995);OutputStream out = socket.getOutputStream();BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));writer=new PrintWriter(out,true);System.out.println("成功连接服务器!");while(true){String line = reader.readLine();area.append("服务器:"+line+"\n");}}
}
public class Server3 extends JFrame {static JTextArea area;  JTextField field;  JButton button;  static PrintStream writer;  public Server3(){  this.setTitle("服务器");  this.setSize(400,500);  area = new JTextArea(25,30);  area.setEditable(false);  field = new JTextField(20);  button = new JButton("提交");  JPanel panel = new JPanel();  JScrollPane sp = new JScrollPane(area);  this.add(sp,BorderLayout.CENTER);  panel.add(field);  panel.add(button);  this.add(panel,BorderLayout.SOUTH);  this.setVisible(true);  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String text =field.getText();writer.println(text);area.append("我:"+text+"\n");field.setText("");}});}
/*=================================================================================*/public static void main(String[] args) throws Exception{Server3 s = new Server3();ServerSocket server =new ServerSocket(9995);System.out.println("服务端准备完毕!开始监听请求!");Socket socket = server.accept();InetAddress address =socket.getInetAddress();String name = address.getLocalHost().getHostName();System.out.println(name+"已成功连接");BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));writer=new PrintStream(socket.getOutputStream(),true);while(true){String line=null;line=reader.readLine();if (line!=null) {area.append("客户端:"+line+"\n");}}}
}

Java Socket网络编程--模仿写一个本机QQ聊天程序相关推荐

  1. Linux网络编程:用C语言实现的聊天程序(同步通信)

    通过TCP协议,用C语言实现的同步聊天程序,注释写的比较详细,个人觉得对字符串处理比较充分,能够正常编译运行,拿出来和大家分享一下! 1.客户端源代码: [cpp] view plaincopypri ...

  2. 网络编程(三)---- MFC 仿QQ聊天软件

    今天来八一八,MFC的SOCKET 编程,利用CSocket实现一个基于TCP实现一个QQ聊天程序.你会发现,MFC要比WIN32 简单的多.但是如果你不理解具体API socket基础知识,你可能会 ...

  3. 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)

    目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 ...

  4. Java Socket网络编程

    一.Socket概述 ​ Java网络编程主要涉及的内容是Socket编程. ​ Socket(套接字),是网络上两个程序之间实现数据交换的一端,它既可以发送请求,也可以接受请求,一个Socket由一 ...

  5. UNIX网络编程笔记(2):一个简单的时间获取程序

    这一讲通过一个简单的时间获取程序简单介绍套接字编程. 1.套接字API 1.1.套接字地址结构 上一讲中介绍了TCP的一些内容,知道了一个套接字对唯一标识了网络中的一个TCP连接,而一个套接字标识了一 ...

  6. java socket客户端设计,基于JavaSocket多客户端并发通信聊天程序的设计与实现

    软件设计开发本栏目责任编辑:谢媛媛 基于JavaSocket多客户端并发通信聊天程序的设计与实现 莫足琴,欧阳艳阶,马康 (十堰职业技术学院计算机工程系,湖北十堰442000) 摘要:随着网络技术与计 ...

  7. Java Socket网络编程常见异常(转)

    1.java.net.SocketTimeoutException 这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(Socket ...

  8. 【Python 基础】网络编程 - Python写一个简单的HTTP服务端和客户端,实现Client/Server交互

    1.HTTP 首先讲一下http和https,详细可以去看runoob http-vs-https 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用 ...

  9. Socket网络编程学习笔记 (10)简易聊天室案例

    1. 聊天室数据传输设计 必要条件:客户端.服务器 必要约束:数据传输协议 原理:服务器监听消息来源.客户端链接服务器并发送消息到服务器 1.1 客户端.服务器数据交互 client 发送消息到服务器 ...

最新文章

  1. 如何低价坐飞机头等舱
  2. PLS-00172: string literal too long
  3. 利用学习率衰减找到最优结果(基于Iris数据集)
  4. Linux《命令行大全》——前言
  5. CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率
  6. Android应用开发(1)---Android五大UI布局的特有属性
  7. Zookeeper Python
  8. Mongodb源码分析--Mongos之分布式锁
  9. 并发(concurrent)、并行(parallel)、顺序(sequential)、串行(serial)是什么 区别
  10. systrace介绍
  11. 达索SOLIDWORKS PDM让你的团队协作更紧密
  12. 十分钟搭建私有化人脸识别服务
  13. 关于支付宝沙箱支付时提示系统有点儿忙,一会再试试解决方案
  14. deepin标题栏边框美化
  15. 饥荒机器人升级上限多少_饥荒机器人满级属性是多少?血量有多高
  16. GPS内置有源天线和无源天线的区别?
  17. 【温暖】文龙回AICODER给老马送锦旗了
  18. color属性 python_Python curses.COLOR_BLUE属性代码示例
  19. 01-Spring Boot 2.0 迁移指南
  20. 清华大学计算机基础实验部,2019计算机考研清华大学计算机基础教学部简介

热门文章

  1. 网站集成支付宝与网站集成财付通的比较
  2. idea shell 中的函数 跳转_关于初次写微信小程序的注意事项(以简单的日历手账为实例) - 幻术是中二
  3. “2018中国数据创新琅琊榜”江湖召集令!
  4. bugly平台如何查看DeviceId
  5. 名词计算机英语,计算机英语名词:base address
  6. Android实现简单的加法器,加法器的实现
  7. 阿里云大陆免备案的两种方法实践
  8. 【Arduino开源项目】LCR(电感/电容/电阻)电桥测试仪
  9. 修改 Virtual PC 2007 的显存大小
  10. 【汇正财经】9.15日盘面回顾和行情解析