知识大全 java网络通信小程序
Posted 文件
篇首语:生也有涯,知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java网络通信小程序相关的知识,希望对你有一定的参考价值。
//ChatServer java文件
import java io *;
import *;
import java util *;
public class ChatServer
boolean started = false;
ServerSocket ss = null;
List<Client> clients = new ArrayList<Client>();
public static void main(String[] args)
new ChatServer() start();
public void start()
try
ss = new ServerSocket( );
started = true;
catch (BindException e)
System out println( 端口使用中 );
System out println( 请关掉相关程序并重新运行服务器! );
System exit( );
catch (IOException e)
e printStackTrace();
try
while(started)
Socket s = ss accept();
Client c = new Client(s);
System out println( a client connected! );
new Thread(c) start();
clients add(c);
//dis close();
catch (IOException e)
e printStackTrace();
finally
try
ss close();
catch (IOException e)
// TODO Auto generated catch block
e printStackTrace();
class Client implements Runnable
private Socket s;
private DataInputStream dis = null;
private DataOutputStream dos = null;
private boolean bConnected = false;
public Client(Socket s)
this s = s;
try
dis = new DataInputStream(s getInputStream());
dos = new DataOutputStream(s getOutputStream());
bConnected = true;
catch (IOException e)
e printStackTrace();
public void send(String str)
try
dos writeUTF(str);
catch (IOException e)
clients remove(this);
System out println( 对方退出了!我从List里面去掉了! );
//e printStackTrace();
public void run()
try
while(bConnected)
String str = dis readUTF();
System out println(str);
for(int i= ; i<clients size(); i++)
Client c = clients get(i);
c send(str);
//System out println( a string send ! );
/*
for(Iterator<Client> it = erator(); it hasNext(); )
Client c = it next();
c send(str);
*/
/*
Iterator<Client> it = erator();
while(it hasNext())
Client c = it next();
c send(str);
*/
catch (EOFException e)
System out println( Client closed! );
catch (IOException e)
e printStackTrace();
finally
try
if(dis != null) dis close();
if(dos != null) dos close();
if(s != null)
s close();
//s = null;
catch (IOException e )
e printStackTrace();
//ChatClient java文件
import java awt *;
import java awt event *;
import java io *;
import *;
public class ChatClient extends Frame
Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
private boolean bConnected = false;
TextField tfTxt = new TextField();
TextArea taContent = new TextArea();
Thread tRecv = new Thread(new RecvThread());
public static void main(String[] args)
new ChatClient() launchFrame();
public void launchFrame()
setLocation( );
this setSize( );
add(tfTxt BorderLayout SOUTH);
add(taContent BorderLayout NORTH);
pack();
this addWindowListener(new WindowAdapter()
@Override
public void windowClosing(WindowEvent arg )
disconnect();
System exit( );
);
tfTxt addActionListener(new TFListener());
setVisible(true);
connect();
tRecv start();
public void connect()
try
s = new Socket( );
dos = new DataOutputStream(s getOutputStream());
dis = new DataInputStream(s getInputStream());
System out println( connected! );
bConnected = true;
catch (UnknownHostException e)
e printStackTrace();
catch (IOException e)
e printStackTrace();
public void disconnect()
try
dos close();
dis close();
s close();
catch (IOException e)
e printStackTrace();
/*
try
bConnected = false;
tRecv join();
catch(InterruptedException e)
e printStackTrace();
finally
try
dos close();
dis close();
s close();
catch (IOException e)
e printStackTrace();
*/
private class TFListener implements ActionListener
public void actionPerformed(ActionEvent e)
String str = tfTxt getText() trim();
//taContent setText(str);
tfTxt setText( );
try
//System out println(s);
dos writeUTF(str);
dos flush();
//dos close();
catch (IOException e )
e printStackTrace();
private class RecvThread implements Runnable
public void run()
try
while(bConnected)
String str = dis readUTF();
//System out println(str);
taContent setText(taContent getText() + str + \\n );
catch (SocketException e)
System out println( 退出了 bye! );
catch (EOFException e)
System out println( 推出了 bye bye! );
catch (IOException e)
e printStackTrace();
cha138/Article/program/Java/hx/201311/25933
相关参考
使用Java编写B/S网络通信程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 网络上的系
使用Java编写B/S网络通信程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!网络上的系统结构多
郭洪锋()该文章对编写客户服务器应用的java程序员有所帮助可以解决程序在对方出现故障的时候继续稳定运行 前言java程序要处理很多的网络数据网络数据发送和接收以及数据流的处理是java程序要特
知识大全 Java Socket 编程——多线程网络聊天程序
JavaSocket编程——多线程网络聊天程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用
使用Java开发兼容IPv6的网络应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! I
知识大全 用Solstice Enterprise Manager建立Java网络管理应用程序
用SolsticeEnterpriseManager建立Java网络管理应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容
Java应用程序和小应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java程序可以是独
几段实用小JAVA程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!你的主页有JAVA语句吗?JA
此小程序主要给ajax还未入门的朋友们一个简单的演示程序的主要内容就是将页面部分的id通过表单传到java的servlet中因为只是做示例所以没有对id进行任何处理有兴趣的朋友可以连接数据库或应用
java对象序列化机制一般来讲有两种用途 需要将对象的状态保存到文件中而后能够通过读入对象状态来重新构造对象恢复程序状态 使用套接字在网络上传送对象的程序来说是很有用的