• 大小: 25KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: socket  server  client  

资源简介

一,实验内容:基于服务器的客户端相互直接通信 具体要求包括: 1,Server支持多客户访问; 2,C与S之间使用TCP连接; 3,C与C之间直接通信(不是通过S传递)。 4,C与C之间直接通信既可以使用TCP,也可以使用UDP。 5,可以使用Socket,也可以使用TcpClient/UdpClient等;

资源截图

代码片段和文件信息



import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;



public class Clientframe extends Jframe{
private JTextArea ReceivedMessage;
private JTextArea SendMessage;
private JList list;
private DefaultListModel clientItem;
private Map clientmap;
private String ip;
private int port;
private String toServertoclient;
private String fromServer;
private Socket sockettestsocket;
private PrintWriter writer;
private BufferedReader buffer_reader;
private boolean isclosed;
private String[] pair;
public static void main(String[] args) {
Clientframe clientframe=new Clientframe();
}

public Clientframe() {
//ip
try {
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}  
        
//自身固定监听端口
/*
 new Socket操作后只是对目标端口进行了监听,
 并非去使用目标端口;所以如果可以正常创建Socket,
 则可以证明主机上的目标端口已经被使用(并非此Socket使用的);
 反之则证明这个端口并没有程序使用
 */
int i;
for ( i = 8001; i < 9000; i++) {
         try {
            System.out.println(“查看 “+ i);
            testsocket = new Socket(ip i);
            System.out.println(“端口 “ + i + “ 已被使用“);
         }
         catch (UnknownHostException e) {
            //System.out.println(“Exception occured“+ e);
            break;
         }
         catch (IOException e) {
          //System.out.println(“Exception occured“+ e);
          break;
         }
      }
port=i;


JTextField IPAdress=new JTextField();
IPAdress.setText(ip);
IPAdress.setEditable(false);
JTextField Port=new JTextField();
Port.setText(String.valueOf(port));
Port.setEditable(false);
list = new JList();
list.setPreferredSize(new Dimension(200 100));
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
clientItem=new DefaultListModel();
ClientSelect clientselect=new ClientSelect()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2018-04-24 15:20  client_to_client\.classpath

     文件        392  2018-04-24 15:20  client_to_client\.project

     文件        598  2018-04-24 15:20  client_to_client\.settings\org.eclipse.jdt.core.prefs

     文件       1204  2018-04-26 12:22  client_to_client\bin\Clientframe$chatclientaccept.class

     文件       4080  2018-04-26 12:22  client_to_client\bin\Clientframe$chatServer.class

     文件       1898  2018-04-26 12:22  client_to_client\bin\Clientframe$ClientSelect.class

     文件       1952  2018-04-26 12:22  client_to_client\bin\Clientframe$send.class

     文件       2328  2018-04-26 12:22  client_to_client\bin\Clientframe$SocketHandler.class

     文件        625  2018-04-26 12:22  client_to_client\bin\Clientframe$Terminator.class

     文件       7567  2018-04-26 12:22  client_to_client\bin\Clientframe.class

     文件       1933  2018-04-26 12:21  client_to_client\bin\Serverframe$ClientSelect.class

     文件       1616  2018-04-26 12:21  client_to_client\bin\Serverframe$Send.class

     文件       3493  2018-04-26 12:21  client_to_client\bin\Serverframe$SocketHandler.class

     文件       6864  2018-04-26 12:21  client_to_client\bin\Serverframe.class

     文件      10934  2018-04-26 12:22  client_to_client\src\Clientframe.java

     文件       7794  2018-04-26 12:21  client_to_client\src\Serverframe.java

     目录          0  2018-04-24 15:20  client_to_client\.settings

     目录          0  2018-04-25 23:13  client_to_client\bin

     目录          0  2018-04-24 15:50  client_to_client\src

     目录          0  2018-04-24 15:20  client_to_client

----------- ---------  ---------- -----  ----

                53579                    20


评论

共有 条评论