您的位置:首页 > 理论基础 > 计算机网络

TCP通讯实例两则

2016-05-10 19:38 591 查看
//**************************************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();
}

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