資源簡介
一,實驗內(nèi)容:基于服務(wù)器的客戶端相互直接通信
具體要求包括:
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();
}??
????????
//自身固定監(jiān)聽端口
/*
?new?Socket操作后只是對目標端口進行了監(jiān)聽,
?并非去使用目標端口;所以如果可以正常創(chuàng)建Socket,
?則可以證明主機上的目標端口已經(jīng)被使用(并非此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\Clientfr
?????文件???????4080??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件???????1898??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件???????1952??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件???????2328??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件????????625??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件???????7567??2018-04-26?12:22??client_to_client\bin\Clientfr
?????文件???????1933??2018-04-26?12:21??client_to_client\bin\Serverfr
?????文件???????1616??2018-04-26?12:21??client_to_client\bin\Serverfr
?????文件???????3493??2018-04-26?12:21??client_to_client\bin\Serverfr
?????文件???????6864??2018-04-26?12:21??client_to_client\bin\Serverfr
?????文件??????10934??2018-04-26?12:22??client_to_client\src\Clientfr
?????文件???????7794??2018-04-26?12:21??client_to_client\src\Serverfr
?????目錄??????????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
- 上一篇:JS留言板添加和刪除代碼,簡單,漂亮
- 下一篇:針式打印機字體
評論
共有 條評論