TCP通讯实例两则

//**************************************DEMO_1*************************************************//

package cn.xlc.net.tcp;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

//TCP客户端
public class Tcpclient {


public static void main(String[] args) throws UnknownHostException, IOException {
// TCP客户端
/*1.建立TCP客户端服务
 *1.1因为是面向连接的 ,必须有链接才可以进行通信
 *1.2在创建客户端时 ,就必须明确目的主机和端口
 * 2.一旦链接建立,就有了传输数据的通道,就可以在同道中人进行数据传输。
 * 这个传输其实就是通过流实现的
 * 3.只要获取socket io中的写动作就可以将数据写到socket流中发给服务端
 * 4.关闭资源
 */
System.out.println("客户端启动。。。。");
//1.创建客户端对象,明确目的地址和端口
Socket s =new Socket(InetAddress.getLocalHost(), 10003);
//2.获取socket流中的输出流,将数据发送给服务端
OutputStream out =s.getOutputStream();
//3.通过输出流写数据
out.write("TCP来了".getBytes());
//4.关闭资源
s.close();
}


}

***********************************************************************************

package cn.xlc.net.tcp;


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

//TCP服务端
public class TCPServer {


public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
/*创建TCP服务端
 * 1.创建Server socket服务器端服务,
 * 服务器端为了让客户端连接上,必须提供一个端口,监听一个端口
 * 2. 获取客户端对象,通过客户端socket流和客户端进行通信
 * 3.获取客户端socket流的读取流。
 * 4.读取数据并显示在服务器端
 * 5.关闭资源
 */
System.out.println("服务器端启动.....");
// 1.创建服务器端对象
ServerSocket ss=new ServerSocket(10003);
// 2.获取客服端对象
Socket s=ss.accept();
String ip =s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
//3.通过客户端对象获取socket流的读取流
InputStream in=s.getInputStream();
 byte buf[]=new byte[1024];
 int len=in.read(buf);
 String str=new String(buf,0,len);
 System.out.println(str);
 
 s.close();
}


}


//**************************************DEMO_2*************************************************//

package cn.xlc.net.tcp2;


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

//TCP客户端
public class tcpclient2 {


public static void main(String[] args) throws UnknownHostException, IOException {
// 发送数据给服务器端,并读取服务端反馈的数据
System.out.println("客户端2启动");
// 1.创建socket客户端
Socket s = new Socket(InetAddress.getLocalHost(), 10004);
// 2.获取socket输入流,写数据
OutputStream out = s.getOutputStream();
out.write("服务端 我来了。。。".getBytes());
// 获取socket的读取流,读取服务端发回的数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String str = new String(buf, 0, len);
System.out.println(str);
s.close();
}


}

**************************************************************************************************

package cn.xlc.net.tcp2;


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


public class TCPServer2 {


public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
/*
 * 度无端收到客户端数据并反馈数据给客户端
 */System.out.println("服务器2启动");
// 1.创建服务端socket对象
ServerSocket ss=new ServerSocket(10004);
// 2.获取客户端对象


Socket s=ss.accept();
String ip =s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
// 3.获取socket读取流
InputStream in =s.getInputStream();
byte buf[]=new byte[1024];
int len=in.read(buf);
String str =new String(buf,0,len);
System.out.println(str);

// 4.给客户端反馈数据,socket输出流
OutputStream out=s.getOutputStream();
out.write("我知道你来了".getBytes());
s.close();
ss.close();
}


}


你可能感兴趣的:(TCP通讯实例两则)