- importjava.io.*;
- importjava.net.*;
- importjavax.swing.*;
- importjava.awt.*;
- importjava.awt.event.*;
- //目前还有一个BUG就是每次服务器发完话之后必须等待回答后才能再次发话,BUG谨存在服务端
- classthreadServerextendsEdServerimplementsRunnable
- {
- publicvoidrun(){
- //TODOAuto-generatedmethodstub
- while(true)
- {
- go();
- }
- }
- publicsynchronizedvoidgo()
- {
- try{
- sock=serverSock.accept();
- reader=newInputStreamReader(sock.getInputStream());
- bufferReader=newBufferedReader(reader);
- receiveString=bufferReader.readLine();
- System.out.println(receiveString);
- receiveText.setText(receiveString);
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- }
- publicclassEdServer{
- /**
- *server
- */
- staticintport;
- staticJButtonportConfirmButton,rePort;
- staticJTextFieldtransferText,receiveText;
- staticJTextFieldportText;
- staticJButtonsentConfirm;
- staticSocketsock;
- staticStringreceiveString,transferString;
- staticServerSocketserverSock;
- staticBufferedReaderbufferReader;
- staticInputStreamReaderreader;
- publicvoidui()
- {
- JFrameframe=newJFrame("聊天服务端_徐方鑫");
- JPanelpanel=newJPanel();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(panel);
- BoxpanelMain=Box.createVerticalBox();
- panel.add(panelMain);
- {
- BoxportMain=Box.createHorizontalBox();
- {
- panelMain.add(portMain);
- JLabelipLabel=newJLabel("ip:");
- JTextFieldipText=newJTextField(15);
- ipText.setEnabled(false);
- portMain.add(ipLabel);
- portMain.add(ipText);
- {
- //这里为IP获取程序,IP为SOCKET的IP,address为MAC地址
- StringIP=null,address=null;
- InetAddressaddr;
- try{
- addr=InetAddress.getLocalHost();
- IP=addr.getHostAddress().toString();
- address=addr.getHostName().toString();
- System.out.println(IP);
- System.out.println(address);
- }catch(UnknownHostExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- ipText.setText(IP);
- }
- JLabelportLabel=newJLabel("port:");
- portMain.add(portLabel);
- portText=newJTextField("5000",8);
- portText.setHorizontalAlignment(JTextField.CENTER);
- portMain.add(portText);
- }
- BoxportConfirm=Box.createHorizontalBox();
- {
- panelMain.add(portConfirm);
- portConfirmButton=newJButton("确定");
- rePort=newJButton("重置");
- //portConfirm.add(portConfirmButton);
- {
- portConfirmButton.addActionListener(newActionListener()
- {
- publicvoidactionPerformed(ActionEvente)
- {
- port=Integer.valueOf(portText.getText()).intValue();
- System.out.println(port);
- try{
- serverSock=newServerSocket(port);
- }catch(IOExceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- Runnablerunnable=newthreadServer();
- ThreadsockThread=newThread(runnable);
- sockThread.start();
- }
- });
- }
- //portConfirm.add(rePort);
- {
- rePort.addActionListener(newActionListener()
- {
- publicvoidactionPerformed(ActionEvente)
- {
- portText.setText("5000");
- transferText.setText(null);
- receiveText.setText(null);
- }
- });
- }
- }
- }
- BoxreceiveMain=Box.createHorizontalBox();
- panelMain.add(receiveMain);
- {
- JLabelreceive=newJLabel("接收:");
- receiveMain.add(receive);
- receiveText=newJTextField(20);
- receiveMain.add(receiveText);
- receiveText.enable(false);
- }
- BoxtransferMain=Box.createHorizontalBox();
- panelMain.add(transferMain);
- {
- JLabeltransfer=newJLabel("发送:");
- transferMain.add(transfer);
- transferText=newJTextField(20);
- transferMain.add(transferText);
- }
- BoxtalkConfirm=Box.createHorizontalBox();
- panelMain.add(talkConfirm);
- {
- sentConfirm=newJButton("发送");
- talkConfirm.add(sentConfirm);
- talkConfirm.add(rePort);
- talkConfirm.add(portConfirmButton);
- }
- frame.setSize(400,150);
- frame.setVisible(true);
- }
- publicstaticvoidnetServer()
- {
- try{
- serverSock=newServerSocket(port);
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- publicstaticvoidmain(String[]args){
- //TODOAuto-generatedmethodstub
- EdServered=newEdServer();
- ed.ui();
- {
- port=Integer.valueOf(portText.getText()).intValue();
- System.out.println(port);
- try{
- serverSock=newServerSocket(port);
- }catch(IOExceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- Runnablerunnable=newthreadServer();
- ThreadsockThread=newThread(runnable);
- sockThread.start();
- }
- sentConfirm.addActionListener(newActionListener()
- {
- publicvoidactionPerformed(ActionEvente)
- {
- try{
- PrintWriterwriter=newPrintWriter(sock.getOutputStream());
- StringwriterTransfer=transferText.getText();
- System.out.println(writerTransfer);
- writer.println(writerTransfer);
- writer.flush();
- }catch(IOExceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- }
- });
- }
- }
JAVA聊天器_服务端
最新推荐文章于 2024-09-19 13:19:42 发布