基于Tcp/IP的JAVA简单聊天程序(2)
2008-02-23 09:40:56来源:互联网 阅读 ()
DisConnect.setEnabled(false);
SendMsg.setEnabled(false);
Connect.setEnabled(true);
}
}
});
SMSField = new JTextField();
SMSField.setBounds(100 , 350 , 200 , 20);
SMSField.setToolTipText("Enter your message here");
c.add(SMSField);
// send message
SendMsg = new JButton("Send");
SendMsg.setBounds(320,350 , 100 , 20);
SendMsg.addKeyListener(new KeyListener()
{
public void keyPressed(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
int key = e.getKeyCode();
if(key == 119)
{
try
{
pWriter.write(SMSField.getText());
pWriter.write("\n");
pWriter.flush();
SMSField.setText("");
}
catch(NullPointerException NpEx)
{
return;
}
}
}
public void keyReleased(KeyEvent e)
{
}
});
SendMsg.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
pWriter.write(SMSField.getText());
pWriter.write("\n");
pWriter.flush();
if(rButton[0].isSelected() == true)
{
MessageTextArea.setText("(Server) :" SMSField.getText());
}
else
{
MessageTextArea.setText("(Client) :" SMSField.getText());
}
SMSField.setText("");
}
catch(NullPointerException NpEx)
{
return;
}
}
});
c.add(SendMsg);
//send file
/*
SendFile = new JButton("Send File");
SendFile.setBounds(320 , 300 , 100,20);
SendFile.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFileChooser FileCh = new JFileChooser();
FileCh.setDialogTitle("Open File");
FileCh.setApproveButtonText("Open");
FileCh.showOpenDialog(c);
File FileName = FileCh.getSelectedFile();
FileReader FRead = null;
FileInputStream Input = null;
try
{
Input = new FileInputStream(FileName);
}
}
});
c.add(SendFile);
*/
JLabel about = new JLabel("Make by cat lee");
about.setBounds(50 , 400 , 100 , 20);
c.add(about);
//set up the server and client thread
Client = new NetWork_Client();
Server = new NetWork_Server();
}
//The Server Thread
class NetWork_Server extends Thread
{
public NetWork_Server()
{
}
public void run()
{
try
{
Connect.setEnabled(true);
State.setText("Waiting for Connect");
cHost.setText(InetAddress.getLocalHost().getHostAddress());
sSocket = new ServerSocket(1984);
InSocket = sSocket.accept();
bufReader = new BufferedReader(new InputStreamReader(InSocket.getInputStream()));
pWriter = new PrintWriter(InSocket.getOutputStream() , true);
while(true)
{
if(sSocket.isBound() == true)
{//makesure is bound
State.setText("Connecting");
DisConnect.setEnabled(true);
Connect.setEnabled(false);
SendMsg.setEnabled(true);
break;
}
}
while(true)
{
InStr = bufReader.readLine();
if(InStr.length() >0 )
{
MessageTextArea.setText("(Client) :");
MessageTextArea.append(InStr);
MessageTextArea.append("\n");
}
}
}
catch(Exception Ex)
{
if(sSocket.isBound() == false)
{
ErrorMsg = "Disconnected";
State.setText("Closed...");
DisConnect.setEnabled(false);
Connect.setEnabled(true);
//InSocket.close();
JOptionPane.showMessageDialog(c , ErrorMsg,title,type);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java异常处理的陋习展播
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
