TCP通信实例

Java 2014-08-30

文件传输,用socket

android中也使用java的socket模型,即“插座”.

首先创建一个线程类复写run方法,ServerSocket是用于创建绑定到特定端口的服务器套接字。参数预定好端口。accept方法 侦听并接受到此套接字的连接。如果服务端口没有收到信息,就阻塞在这里不动,等待。

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyThread extends Thread{

    public void run() {
        // TODO Auto-generated method stub
        
        ServerSocket serverSocket=null;
        try {
            serverSocket=new ServerSocket(4567);
            Socket socket=serverSocket.accept();
            InputStream inputStream=socket.getInputStream();
            byte [] buffer=new byte[1024*4];
            int temp=0;
            while((temp= inputStream.read(buffer))!=-1){
                String s=new String(buffer,0,temp);
               System.out.println(s);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

然后客户端:创建一个socket对象,并指定地址,门牌号。然后通过FileInputStream读取本地的一个文本文件。socket.getOutputStream()返回此套接字的输出流。(其实就是创建个输出通道吧==)。接下来就是IO操作啦。

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;


public class TCPClient {
public static void main(String[] args) {
    try {
        Socket socket=new Socket("localhost",4567);
        InputStream inputStream=new FileInputStream("D://wu.txt");
        OutputStream outputStream=socket.getOutputStream();
        byte [] buffer=new byte[1024*4];
        int temp=0;
        while((temp=inputStream.read(buffer))!=-1){
            outputStream.write(buffer,0,temp);
        }
        
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
}
}

本文由 方方無 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

shijiebei 365bet manbetx 188bet xinshui caipiao 95zz tongbaoyule beplay 88bifa 18luck betway bwin hg0088 aomenjinshayulecheng ca88 shenbotaiyangcheng vwin w88 weide