资源简介
一,实验内容:基于服务器的客户端相互直接通信
具体要求包括:
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\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留言板添加和删除代码,简单,漂亮
- 下一篇:针式打印机字体
相关资源
- USB.Over.Network.Server 注册机
- Uninstall_Cortana_WINCLIENT.CN.rar
- B/S 网上订餐系统
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- websocket实现一对一聊天
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- SOCKET 网络编程 计算机网络 作业 客户
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- socket小工具(可方便建立TCP UDP的soc
- socket客户端源码
- 基于CSocket的多人聊天室
- 用IdFTPServer写的一个FTPServer程序
- socket文件传输源码
- Modbus TCP Client
- SVNDrv.sys
- Radmin Server-3.5 完美绿色破解版x32 x64通
- Linux版的telnet安装包telnet、telnet-serv
- Socket自制系统
- MES 培训手册 001# PM05.MESClient-清场单
- Intel(R) 82579V网卡驱动for server20033
- HP用SOCKET实现(客户端---服务端)
- 最好用的FTP服务器
- 基于IBM eserver x440+FAStT700+VMware的系统整
- IBM CAW for Microsoft Cluster Server 简介
- 飞康NSS、CDP力保Windows Server 2008数据迁
- 64bit.server2008或win10下安装git服务器
- VisualSVN Server 4.0.0 企业破解版
- 网上购物商城系统完整版
评论
共有 条评论