Socket:client

原创 2007年09月18日 09:40:00
package comm;
/**
 * @docRoot:socket客户端程序
 * @author:jingshaoping
 * @date:2007-9-17
 */
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class Client_Socket extends JFrame {
 private static final long serialVersionUID = 1L;
 
 /**窗体上面部分的面板*/
 private JPanel pan_top;
 /**窗体中间部分的面板*/
 private JPanel pan_center;
 /**窗体下面部分的面板*/
 private JPanel pan_south;
 /**聊天消息部分的滚动面板*/
 private JScrollPane jsp_chat_scroll_contents;
 /**聊天内容显示*/
 private JTextArea  text_area_chat_contents;
 /**建立新的连接*/
 private JButton btn_connection;
 /**要发送的信息*/
 private JTextField text_message;
 /**要发送按钮*/
 private JButton send;
 /**发送的数据**/
 private DataOutputStream out;
 /**传入的数据**/
 private DataInputStream in;
 /**Socket**/
 private Socket socket;
 /**构造方法**/
 public Client_Socket()
 {
  try
  {
   jinint();
  }catch(Exception e)
  {
   JOptionPane.showMessageDialog(this,"程序初始化没有完成");
  }
 }
 /**
  * @docRoot 对程序进行初始化
  */
 private void jinint()
 {
  /**添加连接按钮**/
  pan_top = new JPanel();
  btn_connection =new JButton("建立连接");
  pan_top.add(btn_connection);
  this.getContentPane().add(pan_top,BorderLayout.NORTH);
  /**添加聊天内容**/
  text_area_chat_contents = new JTextArea(12,55);
  text_area_chat_contents.setEditable(false);
  text_area_chat_contents.setFont(new Font("黑体",0,14));
  jsp_chat_scroll_contents = new JScrollPane(text_area_chat_contents);
  pan_center = new JPanel();
  pan_center.add(jsp_chat_scroll_contents);
  this.getContentPane().add(pan_center,BorderLayout.CENTER);
  /**添加message和发送按钮**/
  text_message = new JTextField(30);
  text_message.setFont(new Font("黑体",1,16));
  send = new JButton("发送");
  pan_south = new JPanel();
  pan_south.add(text_message);
  pan_south.add(send);
  this.getContentPane().add(pan_south,BorderLayout.SOUTH);
  /**窗体的总体布局与外观*/
  this.setTitle("聊天程序");
  this.setResizable(false);
  this.setSize(400,300); 
  Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  this.setLocation((screen.width-400)/2,(screen.height-300)/2);
  /**对程序的关闭添加监听*/
  this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  this.addWindowListener(new WindowListener(){
   public void windowOpened(WindowEvent arg0) {}
   public void windowClosing(WindowEvent arg0) {}
   public void windowClosed(WindowEvent arg0) {
    try
    {
     out.writeUTF("bye");
     appendMessage("bye"); 
    }catch(Exception e)
    {
    }
    appClose();  
   }
   public void windowIconified(WindowEvent arg0) {}
   public void windowDeiconified(WindowEvent arg0) {}
   public void windowActivated(WindowEvent arg0) {}
   public void windowDeactivated(WindowEvent arg0) {}
  });
  this.setVisible(true);
  /**添加send控件的监听**/
  send.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent arg0) {
    sendMessage();
   }
  }
  );
  /**添加btn_connection控件的监听**/
  btn_connection.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent arg0) {
    createNewConnection();
   }
  });
 }
 /**建立新的连接**/
 private void createNewConnection()
 {
  try
     {
     socket = new Socket("202.202.1.22",3000);
     out = new DataOutputStream(socket.getOutputStream());
     in= new DataInputStream(socket.getInputStream());
     out.writeUTF("建立连接成功");
     MyThread mythread = new MyThread(this);
     mythread.start();
     }catch(Exception e)
     {
      JOptionPane.showMessageDialog(this,"建立连接失败");
     }
 }
 /**发送消息**/
 private void sendMessage()
 {
  if(!text_message.getText().equalsIgnoreCase(""))
  {
   try
   {
    out.writeUTF(text_message.getText());
    appendMessage("客户机说:"+text_message.getText()+"/n");
    text_message.setText("");
    text_message.setFocusable(true);
   }catch(Exception e)
   {
    JOptionPane.showMessageDialog(this,"消息发送失败,可能是没有建立连接");
   }
  }
 }
 /**关闭应用程序**/
 private void appClose()
 {
  dispose();
  System.exit(0);
 }
 /**main testProgram**/
 public static void main(String[] args)
 {
  new Client_Socket();
 }
 /**传出in**/
 public DataInputStream getIn() {
  return in;
 }
 /**更新text_area_chat_contents里的内容**/
 public void appendMessage(String str)
 {
  text_area_chat_contents.append(str);
 }
 /**传出out**/
 public DataOutputStream getOut() {
  return out;
 }
 /**获取socket**/
 public Socket getSocket() {
  return socket;
 }
}
 

socket_client_server

  • 2017年07月23日 10:02
  • 18KB
  • 下载

socket client

  • 2012年09月26日 01:15
  • 4KB
  • 下载

Socket编程(一)简单Client与Server的单向通信和双向通信

从Console中读取内容 BufferedReader inputReader; // Alt + Shift + z try...catch等快捷键 // 从Console读取...

Socket_Chat_Server_Client

  • 2016年04月25日 16:03
  • 873KB
  • 下载

从零开始写Go网络通信框架(1)——基本的Socket Client/Server的编写

用其他语言写Socket程序通常的步骤是: 服务端:Socket——>bind——>listen——>accept——>read/recv和write/send——>close 客户端:Socket—...

socket服务器,client 浏览器访问

  • 2015年06月04日 17:19
  • 87KB
  • 下载

c++ window mobil socket client .txt

  • 2011年07月24日 10:56
  • 709B
  • 下载

Android Socket进程通信——Client与Server之间的通信机制

Socket百度百科:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一...

socket client

  • 2009年12月15日 19:40
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Socket:client
举报原因:
原因补充:

(最多只允许输入30个字)