黑马程序员技术交流社区
标题:
TCP传输
[打印本页]
作者:
心在左边跳
时间:
2015-7-10 15:00
标题:
TCP传输
Socket和ServerSocket
建立客户端和服务器端
建立连接后,通过Socket的IO流进行数据传输
关闭SOCKET
import java.io.*;
import java.net.*;
/**
*1.TCP分客户端和服务端
*2.客户端对应对象Socket.服务端对应的对象ServerSocket
*
*/
/*
*客户端,该对象建立时,就去连接指定主机。因为tcp是面向连接的。
*所以在建立Socket时,就要有服务端存在,并连接成功,形成通路后,
*在该通道进行数据传输。
*/
public class TCPClient {
public static void main(String[] args) throws Exception {
//创建客户端socket服务,指定目的主机和端口
Socket s=new Socket("127.0.0.1",10003);
//为了发送数据,获取socket流中的输出流
OutputStream out =s.getOutputStream();
out.write("tcp come".getBytes());
s.close();
}
}
复制代码
import java.io.*;
import java.net.*;
/**
* 服务端
* 1.建立服务端Socket服务,serverSocket(),监听一个端口
* 2.获取连接过来的客户端对象,通过ServerSocket的accept对象,所以这个方法是阻塞式的
* 没有连接会等待
* 3.客户端如果发过来数据,服务端要使用对应的客户端对象,并获取该客户端对象的读取流读取
* 发过来的数据,并打印在控制台
* 4.关闭服务端(可选)
*/
public 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:"+ip);
//获取客户端发送来的数据,使用客户端对象的读取流来读取数据
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();
}
}
复制代码
作者:
孟卫严
时间:
2015-7-10 21:29
你这只能建立链接然后就关掉了,
没把法聊天啊,建议改进一下。
作者:
康恒强
时间:
2015-7-10 21:51
水过,,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2