java实现ip聊天,基于Tcp/IP的JAVA简单聊天程序

c4468b3f4df77e96b0a416fa2a870fba.png

/*Copyright 2005

*make by cat lee

*基于TCP/IP的简单聊天程序

*使用方法:先启动Server端.然后再启动Client端.

*程序有很多错误,做得很马虎,本来想把发送文件加上去的.但又要做网络版坦克小战了

*我在Java中做不出好像QQ那样的发送消息热键,本来打算用keylistener监听F8键来发消息的

*但不知道为什么不行..郁闷.

*至于界面,本来想用 IFrame做得漂亮点的,但想想程序这么烂,界面花巧有什么用...还是算了

*IDE我是用JC3.10,不支持中文.所以注释用英文,有兴趣看本烂程序的将就一下吧.^_^

*/

import java.io.*;

import java.net.*;

import java.awt.*;

import javax.Swing.*;

import java.awt.event.*;

import javax.swing.event.*;

public class NetWork extends JFrame

{

JRadioButton rButton[] = new JRadioButton[2];

JTextField State,cHost,SMSField;

JButton Connect,DisConnect,SendMsg,SendFile;

JTextArea MessageTextArea;

ServerSocket sSocket;

Socket InSocket, cSocket;

BufferedReader bufReader;

PrintWriter pWriter;

String InStr;

int type = JOptionPane.ERROR_MESSAGE;

String title = "Error Message";

String ErrorMsg = "Error";

Container c = new Container();

NetWork_Client Client;

NetWork_Server Server;

public NetWork()

{//

super("TCP Communicate");

//Layout

c.setLayout(null);

setSize(500 , 480);

getContentPane().add(c);

MessageTextArea = new JTextArea();

MessageTextArea.setBounds(100 , 130 , 200 , 200);

MessageTextArea.setLineWrap(true);

c.add(MessageTextArea);

//c.add(new JScrollPane(MessageTextArea));

//the exit event

this.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent ClosingWin)

{

System.exit(0);

}

});

//intERPhase

String bStr[] = {"Server", "Client"};

ButtonGroup bGroup = new ButtonGroup();

for(int i= 0;i<2;i )

{

rButton[i] = new JRadioButton(bStr[i]);

rButton[i].setBounds(10 i*80 , 30 , 80 , 20);

bGroup.add(rButton[i]);

c.add(rButton[i]);

}

rButton[0].setSelected(true);

JLabel ConnectState = new JLabel("ConnectState :");

ConnectState.setBounds(200 , 30 , 100 , 20 );

c.add(ConnectState);

State = new JTextField();

State.setBounds(320, 30 , 150 , 20);

c.add(State);

JLabel ConnectHost = new JLabel("ConnectHost IP");

ConnectHost.setBounds(10 , 80 , 100 , 20);

c.add(ConnectHost);

cHost = new JTextField();

cHost.setBounds(100 , 80 , 200 , 20);

c.add(cHost);

Connect = new JButton("Connect");

Connect.setBounds(320 , 80 , 100 , 20);

c.add(Connect);

Connect.addActionListener(new ActionListener()

{//the event of the connect button

public void actionPerformed(ActionEvent e)

{

try

{

if(rButton[0].isSelected() == true)

{//start up the Server Thread

InStr = "";

SMSField.setText("");

Server.start();

}

else

{//start up the Client thread

InStr = "";

SMSField.setText("");

Client.start();

}

}

catch(Exception Ex)

{

return;

}

finally

{

DisConnect.setEnabled(true);

SendMsg.setEnabled(true);

Connect.setEnabled(false);

}

}

});

JLabel ReceInfo = new JLabel("Information ");

ReceInfo.setBounds(10 , 130 , 100 , 20);

c.add(ReceInfo);

DisConnect = new JButton("DisConnect");

DisConnect.setBounds(320 , 130 , 100 , 20);

c.add(DisConnect);

DisConnect.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{//the event of the disconnect button

//close the server or client

try

{

if(rButton[0].isSelected() == true)

{//close the server

InSocket.close();

}

else

{//close the client

cSocket.close();

}

}

catch(Exception Ex)

{

return;

}

finally

{

State.setText("Closed...");

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值