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

Java:网络编程值TCP的使用

2015-10-28 22:18 483 查看
演示TCP传输

1.Tcp分客户端和服务端
2.客服端对应的对象是scoket
服务端对应的对象是serverscoket

客户端:
通过查阅scoket对象,发现在建立对象时,就可以连接指定的主机。
因为tcp是面向连接的,所以在建立scoket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输。

需求:给服务端发送一个文本数据
步骤:
1.创建Socket服务并指定要连接的主机和端口。可以采用构造方法Socket(String host, int port)或对象方法connect(SocketAddress endpoint)
2.获取Sockett中的输出流,用来发送数据。方法是OutputStream getOutputStream()
3.关闭客户端流。
//例子如下:

import java.net.*;
import java.io.*;
class TcpClient
{
public static void main(String[] args)throws Exception
{
//创建客户端的Socket服务,指定目的主机和端口
Socket s = new Socket("192.168.1.105",8888);

//为了发送数据,应该获取Socket中的输出流,
OutputStream out = s.getOutputStream();

out.write("tcp is coming!".getBytes());

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


需求:定义端点接收数据,并打印在控制台上。
服务端:
1.建立服务端的Socket服务,构造函数ServerScoket(int port),并监听一个端口
2.获取连接过来的客服端对象,方法Socket accept() ,这个方法是阻塞式的,没有连接就等。
3.如果客服端发送过来数据,那么服务端要使用对应的客服端对象,并采用该客服端的读取流对象来读取发过来的数据。并打印在控制台。
4.关闭服务端(可选操作)
//例子如下:

class TcpServer
{
public static void main(String[] args)throws Exception
{
//建立服务端的Socket服务,并监听一个端口
ServerSocket ss = new ServerSocket(8888);

//通过accept方法获取连接过来的客服端对象
Socket s = ss.accept();
String IP = s.getInetAddress().getHostAddress();
System.out.println(IP+"...connected!");

//获取客户端发送给来的数据,服务端要使用客服端对象的读取流类读取数据。方法InputStream getInputStream()
InputStream in = s.getInputStream();

byte[] buf = new byte[1024];

int len = in.read(buf);

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

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

ss.close();//关闭服务端(可选操作)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: