package Client;

import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.*;import java.io.*;import org.jvnet.substance.skin.*;

/** * 负责连接服务器 * @author lijiapeng * */public class Client extends JFrame{    private JMenuBar menuBar=new JMenuBar(); private JMenu system=new JMenu("系统");  private JMenuItem exit=new JMenuItem("退出");    private JTextArea text=new JTextArea();  private JPanel panel=new JPanel();    private String serverName;   private Socket socket;    private Login login;

    public Client(String serverName){     super("客户端");       this.serverName=serverName;          setJMenuBar(menuBar);     menuBar.add(system);      system.add(exit);     panel.setLayout(new BorderLayout());      panel.add(text);      add(panel);       setSize(200,150);     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       //设置窗口的位置居中        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        Dimension frameSize = getSize();        if (frameSize.height > screenSize.height) {           frameSize.height = screenSize.height;        }        if (frameSize.width > screenSize.width) {           frameSize.width = screenSize.width;        }         setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);                       try{            UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceFieldOfWheatLookAndFeel");        }catch(Exception  ex){            ex.printStackTrace();                   }         setVisible(true);     exit.addActionListener(new ActionListener(){          public void actionPerformed(ActionEvent e){               System.exit(0);           }     });   }

   /**    * 与服务器取得连接    */   public void getConnection(){      try{          text.setText("连接中...");         socket=new Socket(InetAddress.getByName(serverName),4000);           if(!socket.isConnected()){                closeConnection();            }         String name=socket.getInetAddress().getHostName();           text.append("\n成功连接到服务器"+name);            login=new Login(socket,serverName,4000);         this.setVisible(false);           login.setVisible(true);       }catch(Exception e1){         e1.printStackTrace();     } }   

    public void closeConnection()throws IOException{      socket.close();         } 

    /**    * 主函数     */   public static void main(String args[]){       Client client;        if(args.length==0)         client=new Client("127.0.0.1");         else          client=new Client(args[0]);      client.getConnection();   }} 

把自己曾经写的一个客户间聊天的程序与大家分享(2)相关推荐

  1. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  2. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  3. 用Python写一个模拟qq聊天小程序的代码实例

    前言 今天小编就为大家分享一篇关于用Python写一个模拟qq聊天小程序的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Python 超简单的聊天 ...

  4. sand java_我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,...

    我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择... 我在san ...

  5. Flutter 构建一个完整的聊天应用程序

    在本教程中,我将向您展示如何使用 Flutter 构建一个完整的聊天应用程序.对于这一部分,我们将创建应用程序的 UI 原型,然后我将向您展示如何使用 firebase 创建后端服务并创建聊天系统. ...

  6. python斗地主游戏源码_我用tkinter写的一个斗地主练习复盘python程序

    python写的斗地主模拟器使用说明,以及python的标准控件库tkinter的使用示例. http://vdisk.weibo.com/s/C5R1f8s9EVq2y 我用python写的一个斗地 ...

  7. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  8. 我给舅舅用Python写了一个订餐系统微信小程序!生意简直火爆!

    微信登录功能的实现 通过小程序的前端 配合python-flask的后端,实现登录接口的功能 在我们正式写代码之前 读一下微信小程序的官方文档. https://developers.weixin.q ...

  9. 我用370行代码写了一个wxPython的任务托盘程序:实用的屏幕录像机

    文章目录 1. 前言 2. 设计思路 3. 源码 4. 打包 4.1 打包成一个目录 4.2 打包成一个文件 1. 前言 最近有同学咨询如何用wx写任务托盘程序,也有同学咨询怎样创建wx的异形窗口.恰 ...

最新文章

  1. 1771: 书架整理(dp)
  2. JAVA Java多线程与并发库
  3. drools 7.x 事件元数据
  4. iOS平台上的MVVM模式(译文)
  5. 记录一次在centos下使用gmp的悲伤
  6. chrome 打印布局_在打印预览模式下使用Chrome的Element Inspector?
  7. LADRC的学习——用simulink搭建仿真模型
  8. 利用Python实现Shp格式向GeoJSON的转换!
  9. Windows Mobile 触摸屏(Touch Panel)截获
  10. 2021 年最受欢迎的深度学习软件
  11. 流年依旧,只是散了曾经
  12. python装饰器和异常处理_装饰器异常处理-面向对象编程-Python教程自动化开发_Python视频教程...
  13. Vistor(访问者模式)行为型
  14. python支持复数以及相关的运算吗_python怎么实现复数运算
  15. sudo: no tty present and no askpass program specified 处理
  16. Windows远程桌面连接报错【无法连接到远程计算机】
  17. 默克与Palantir合作打造半导体制造数据平台Athinia;亚马逊云科技推出四项新存储服务和功能 | 全球TMT...
  18. 如何做好人力资源管理?
  19. VLC 2.2.1 解决视频字幕乱码
  20. office 插件开发

热门文章

  1. 20190605学习日记
  2. 迪赛智慧数——饼图(玫瑰饼图):世界厨师日之-从业时间
  3. [导读]7 Steps to Mastering Machine Learning With Python
  4. python实现gui+mysql图书管理系统_用Python Django框架写一个图书管理系统LMS
  5. 几个潜在的AI科研助手
  6. 干货!JAVA容器-自问自答学HashMap
  7. 【苹果相册推】怎么操作呢?是什么意思?
  8. c语言运算符 amp 的意思,C语言运算符是什么意思
  9. java五大浏览器,[Java教程]各主流浏览器(PC、移动端)userAgent属性信息
  10. No JSON object could be decoded