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

黑马程序员 【】java学习之路——TCP客户端和服务端的创建

2014-08-20 12:56 330 查看
-------
android培训java培训、期待与您交流! ----------

演示TCP传输

1:tcp分客户端和服务端

2:客户端对应的对象是Socket

服务端对应的是ServerSocket

演示:tcp的客户端和服务端的互访

需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息

*/

/*

客户端:

通过查阅socket对象,发现在该对象建立时,就可以连接指定的主机。

因为TCP是面向连接的,所以在建立Socket服务时,就要有服务端在,并连接成功,

形成通路后,在该通道进行数据的传输

需求:给服务端发送一个文本数据。

步骤:

1,创建Socket服务,并指定要连接的主机接口。

2,获取socket流中的输出流,将数据写到该流中,通过网络发送到服务端。

3,获取socket流中的输入流,讲服务端反馈的数据获取到并打印。

*/

import java.io.*;

import java.net.*;

class TcpClient

{

public static void main(String[] args) throws Exception

{

//创建客户端的socket服务。指定目的主机和端口

Socket s = new Socket("192.168.1.104",10003);

//为了发送数据,应该获取socket流中的输出流

OutputStream out = s.getOutputStream();

out.write("哥们你好 ".getBytes());

InputStream in = s.getInputStream();

byte [] buf = new byte[1024];

int len = in.read(buf);

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

s.close();

}

}

/*

需求:

定义端点接收数据,并打印在控制台上

服务端

1,建立服务端的Socket服务。ServerSocket();并监听一个端口。

2,获取链接过来的客户端对象。通过serversocket的accept方法。没有连接就会等。所以这个方法是阻塞式的。

3,客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。

4,关闭服务端(可选的,不一定要关掉)

*/

class TcpServer

{

public static void main(String[] args) throws Exception

{

//建立服务端的socket并监听一个端口。

ServerSocket ss = new ServerSocket(10003);

//通过accept方法获取连接过来的客户端对象

Socket s = ss.accept();

String ip = s.getInetAddress().getHostAddress();

System.out.println(ip+"//////connectede");

//获取客户端发送过来的数据,那么要使用客户端对象的读取流方法来读取数据。

InputStream in = s.getInputStream();

byte [] buf = new byte[1024];

int len = in.read(buf);

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

OutputStream out = s.getOutputStream();

out.write("哥们收到了,你也好".getBytes());

s.close();//关闭客户端

ss.close();

}

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