您的位置:首页 > 编程语言 > Java开发

java 基于tcp客户端服务端发送接收数据

2018-06-06 20:31 603 查看

客户端:

package demo03;

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

/*
* 实现TCP客户端,接收到服务器
* 和服务器实现数据交换
* 实现TCP客户端程序的类 java.net.Socket
*
* 构造方法:
*         Socket(String host,int port) 传服务器IP和端口号
*         注意:构造方法只要运行,就会和服务器进行连接,连接失败,抛出异常
*
*         OutputStream getOutputStream() 返回套接字的输出流
*             作用:将数据输出,输出到服务器
*
*         InputStream getInputStream() 返回套接字的输入流
*             作用:从服务端读取数据
*
*         客户端服务器数据交换,必须使用套接字对象Socket中的获取的IO流,自己new流,不行
*/
public class TCPClient {
public static void main(String[] args) throws IOException{
//创建Socket对象,连接服务器
Socket socket=new Socket("127.0.0.1",8888);
//通过客户端的套接字对象Socket方法,获取字节输出流,将数据写向服务器
OutputStream out=socket.getOutputStream();
out.write("服务器你好!".getBytes());

//读取服务器发回的数据,使用socket套接字对象中的字节输入流
InputStream in=socket.getInputStream();
byte[] data=new byte[1024];
int len=in.read(data);
System.out.println(new String(data,0,len));

socket.close();
}
}

 

服务端:

package demo03;

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

/*
* 实现TCP服务器程序
* 表示服务器程序的类 java.net.ServerSocket
* 构造方法:
*         ServerSocket(int port) 传递端口号
*
* 很重要的事情:必须要获得客户端的套接字对象Socket
*     Socket accept()
*/
public class TCPServer {
public static void main(String[] args)throws IOException {
ServerSocket server=new ServerSocket(8888);
//调用服务器套接字对象中的方法accept()获取客户端套接字对象
Socket socket=server.accept();
//通过客户端套接字对象,socket获取字节输入流,读取的是客户端发送来的数据
InputStream in=socket.getInputStream();
byte[] data=new byte[1024];
int len=in.read(data);

System.out.println(new String(data,0,len));

//服务器向客户端回数据,字节输出流,通过客户端套接字对象获取字节输出流
OutputStream out=socket.getOutputStream();
out.write("收到,谢谢".getBytes());

socket.close();
server.close();

}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐