资源简介
一,实验内容:基于服务器的客户端相互直接通信
具体要求包括:
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留言板添加和删除代码,简单,漂亮
- 下一篇:针式打印机字体
相关资源
- OPCClient,读取opc服务器的数据
- ArcGis Server 10.0种子及授权文件
- geoserver源码和geotools
- Exchange Server 2013 SN
- VMware Horizon 7.6 官方中文版 JMP Server安
- VMware vCenter Server 6.0 u2
- Socket和多线程的聊天室
- linux网络编程教学视频
- VMware esx server 4.1 64位 附地址+注册机
-
应用socket编程来进行xm
l的传输已经 - Socket通信实现多人聊天应用
- NDK Socket通讯小程序
- socketcan提供的linux下的CAN网络工具包
- syslog receiver syslog接收测试工具
- GTK多线程聊天工具
- 人事管理系统数据库课程设计
- ESXi 5.0 VMware vCenter Server 5.0 VMware vSph
- TinyHTTPd for Windows源码
- windows下socket 可以传输图片,压缩包等
- 在安装Exchange2003服务器时Windows Serve
- boa web server
- WebSocket .net聊天室源代码
- Labview网络通讯DataSocket
- 目前.NET最强SOCKET框架组“北风之神”
- tcp socket server
- socket服务端和客户端完整代码
- socket定时发送数据小程序
- Server 10.2.ecp
- VS2010编写CSocket大文件TCP传送
- Linux下的Socket聊天系统,QT完整界面
评论
共有 条评论