JAVA聊天器_服务端
来源:互联网 发布:nice软件电脑版 编辑:程序博客网 时间:2024/05/16 23:37
- import java.io.*;
- import java.net.*;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- //目前还有一个BUG就是每次服务器发完话之后必须等待回答后才能再次发话,BUG谨存在服务端
- class threadServer extends EdServer implements Runnable
- {
- public void run() {
- // TODO Auto-generated method stub
- while(true)
- {
- go();
- }
- }
- public synchronized void go()
- {
- try {
- sock = serverSock.accept();
- reader= new InputStreamReader(sock.getInputStream());
- bufferReader = new BufferedReader(reader);
- receiveString = bufferReader.readLine();
- System.out.println(receiveString);
- receiveText.setText(receiveString);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- public class EdServer {
- /**
- * server
- */
- static int port;
- static JButton portConfirmButton,rePort;
- static JTextField transferText,receiveText;
- static JTextField portText;
- static JButton sentConfirm;
- static Socket sock;
- static String receiveString,transferString;
- static ServerSocket serverSock;
- static BufferedReader bufferReader;
- static InputStreamReader reader;
- public void ui()
- {
- JFrame frame = new JFrame("聊天服务端_徐方鑫");
- JPanel panel = new JPanel();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(panel);
- Box panelMain = Box.createVerticalBox();
- panel.add(panelMain);
- {
- Box portMain = Box.createHorizontalBox();
- {
- panelMain.add(portMain);
- JLabel ipLabel = new JLabel("ip:");
- JTextField ipText = new JTextField(15);
- ipText.setEnabled(false);
- portMain.add(ipLabel);
- portMain.add(ipText);
- {
- //这里为IP获取程序,IP为SOCKET的IP,address为MAC地址
- String IP = null, address = null;
- InetAddress addr;
- try {
- addr = InetAddress.getLocalHost();
- IP = addr.getHostAddress().toString();
- address = addr.getHostName().toString();
- System.out.println(IP);
- System.out.println(address);
- } catch (UnknownHostException e) {
- //TODO Auto-generated catch block
- e.printStackTrace();
- }
- ipText.setText(IP);
- }
- JLabel portLabel = new JLabel("port:");
- portMain.add(portLabel);
- portText = new JTextField("5000",8);
- portText.setHorizontalAlignment(JTextField.CENTER);
- portMain.add(portText);
- }
- Box portConfirm = Box.createHorizontalBox();
- {
- panelMain.add(portConfirm);
- portConfirmButton = new JButton("确定");
- rePort = new JButton("重置");
- //portConfirm.add(portConfirmButton);
- {
- portConfirmButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- port=Integer.valueOf(portText.getText()).intValue();
- System.out.println(port);
- try {
- serverSock = new ServerSocket(port);
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- Runnable runnable = new threadServer();
- Thread sockThread = new Thread(runnable);
- sockThread.start();
- }
- });
- }
- //portConfirm.add(rePort);
- {
- rePort.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- portText.setText("5000");
- transferText.setText(null);
- receiveText.setText(null);
- }
- });
- }
- }
- }
- Box receiveMain = Box.createHorizontalBox();
- panelMain.add(receiveMain);
- {
- JLabel receive = new JLabel("接收:");
- receiveMain.add(receive);
- receiveText = new JTextField(20);
- receiveMain.add(receiveText);
- receiveText.enable(false);
- }
- Box transferMain = Box.createHorizontalBox();
- panelMain.add(transferMain);
- {
- JLabel transfer = new JLabel("发送:");
- transferMain.add(transfer);
- transferText = new JTextField(20);
- transferMain.add(transferText);
- }
- Box talkConfirm = Box.createHorizontalBox();
- panelMain.add(talkConfirm);
- {
- sentConfirm = new JButton("发送");
- talkConfirm.add(sentConfirm);
- talkConfirm.add(rePort);
- talkConfirm.add(portConfirmButton);
- }
- frame.setSize(400,150);
- frame.setVisible(true);
- }
- public static void netServer()
- {
- try {
- serverSock =new ServerSocket(port);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- EdServer ed = new EdServer();
- ed.ui();
- {
- port=Integer.valueOf(portText.getText()).intValue();
- System.out.println(port);
- try {
- serverSock = new ServerSocket(port);
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- Runnable runnable = new threadServer();
- Thread sockThread = new Thread(runnable);
- sockThread.start();
- }
- sentConfirm.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- try {
- PrintWriter writer = new PrintWriter(sock.getOutputStream());
- String writerTransfer = transferText.getText();
- System.out.println(writerTransfer);
- writer.println(writerTransfer);
- writer.flush();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- });
- }
- }
- JAVA聊天器_服务端
- JAVA聊天器_客户端
- Java 聊天器,文件传输
- JavaSocket聊天器<一>实现客户端与服务端连接
- JavaSocket聊天器<二>客户端与服务端发送信息
- JavaSocket聊天器<三>多线程客户端向服务端发送信息
- 基于JAVA-SOCKET的简易聊天器
- App推送java服务端_小米推送
- 我做的小小聊天器,java swing实现
- 简单聊天器
- udp聊天器
- java服务端
- C#内存共享_服务端
- 2016-08-23-java-基于socket和多线程的聊天器通讯
- 我自己的聊天器
- 异步UDP聊天器
- 5、qq聊天器模拟
- 应用:udp聊天器
- 教学杂谈-1:呼唤激情
- 教学杂谈-2:为何照本宣读?
- 教学杂谈-4:学生的眼睛
- 用自己的劳动说话——本课题组的科学研究中的学术规范实施细则
- JAVA聊天器_客户端
- JAVA聊天器_服务端
- 谦虚
- PHP学习
- Virtual_Function
- 错误原因
- 下雪了,想家了
- 转:到了哈佛,才知道中国的大学距离有多么远
- jsp中两种include用法的区别
- C标准库--关于预编译