当前位置:编程学习 > JAVA >>

Java 简单的Socket通讯的客户端实现

前面发了服务器端的代码,这里发客户端的,服务器类连接

有2个类,因为用了多线程,要实现Runnable接口

主类代码

[java]
/**
 * 这是测试类
 * @author WantnRun
 * 2013年6月24日 11:10:19
 */ 
public class Test { 
 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
        MySocket mySocket=new MySocket();//新建客户端Socket类对象  
        new Thread(mySocket).start();//启动线程调用run方法  
 
    } 
 

/**
 * 这是测试类
 * @author WantnRun
 * 2013年6月24日 11:10:19
 */
public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  MySocket mySocket=new MySocket();//新建客户端Socket类对象
  new Thread(mySocket).start();//启动线程调用run方法

 }

}
客户端Socket类主要代码类


[java]
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.io.PrintWriter; 
import java.net.InetAddress; 
import java.net.Socket; 
import java.net.UnknownHostException; 
 
/**
 * 客户端的Socket类
 * @author WantnRun
 * 2013年6月24日 10:29:54
 */ 
public class MySocket implements Runnable { 
 
    /**
     * Socket对象
     */ 
    private Socket socket=null; 
    /**
     * 服务器地址,如果在同一个机器上不能使用127.0.0.1的回环地址
     */ 
    private String HOST="192.168.1.222"; 
    /**
     * 服务器端口
     */ 
    private int PORT=8886; 
    /**
     * 读取接收的数据
     */ 
    private BufferedReader bufferedReader=null; 
    /**
     * 将数据发送给对方
     */ 
    private PrintWriter printWriter=null; 
    /**
     * 多线程的run方法
     */ 
    public void run() { 
        try { 
            //创建套接字,根据ip和端口号  
            socket=new Socket(InetAddress.getByName(HOST),PORT); 
            //使用套接字的输入流构造BUfferedReader对象  
            bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream())); 
            //使用套接字的输出流构造PrintWriter对象  
            printWriter=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true); 
            //键盘输入对象  
            BufferedReader in=new BufferedReader((new InputStreamReader(System.in))); 
            while(true) 
            { 
                if(socket.isConnected()) 
                { 
                    //是连接状态  
                    //客户端首先发送消息给服务器端  
                    System.out.println("输入消息"); 
                    String str=in.readLine();//获取输入  
                    printWriter.println(str);//发送给服务器  
                    //接收服务器返回的消息  
                    String msg=bufferedReader.readLine();//读取服务器的消息  
                    System.out.println("服务器:"+msg);//打印服务器消息  
                } 
                     
            } 
        } catch (UnknownHostException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
         
    } 
 
 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 客户端的Socket类
 * @author WantnRun
 * 2013年6月24日 10:29:54
 */
public class MySocket implements Runnable {

 /**
  * Socket对象
  */
 private Socket socket=null;
 /**
  * 服务器地址,如果在同一个机器上不能使用127.0.0.1的回环地址
  */
 private String HOST="192.168.1.222";
 /**
  * 服务器端口
  */
 private int PORT=8886;
 /**
  * 读取接收的数据
  */
 private BufferedReader bufferedReader=null;
 /**
  * 将数据发送给对方
  */
 private PrintWriter printWriter=null;
 /**
  * 多线程的run方法
  */
 public void run() {
  try {
   //创建套接字,根据ip和端口号
   so

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,