import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Socket,serversocket
* 1.tcp分建立客服端和服務端
* 2.客服端對應的對象是socket,服務端serversocket
* 建立連接后,通過socket中的IO流進行數據傳輸
*/
/**
* 需求,给服务端发送一个文本数据
* 客服端
* 通過查閱socket对象,发现在该对象建立时,就可以连接指定主机
* tcp是面向连接时,在建立xocket服务时,就有服务端存在,并连接成功,形成通路后,在该通道进行数据传输
* 步骤:
* 1.创建socket服务,并指定要连接的主机和端口
* 2.
*
*/
class TcpClient{
public static void main(String[] args) throws Exception, IOException {
//创建客服端的socket服务,指定目的主机和端口
Socket s=new Socket("192.168.1.254",10003);
//为发送数据,获取socket中的输出流
OutputStream out=s.getOutputStream();
out.write("tcp i am coming".getBytes());
s.close();
}
}
/**
* 服务端:定义端点接收数据并打印在控制台上
* 1.建立服务端的socket服务,serversocket并绑定端口
* 2.获取连接过来的客服端对象,通过serversoket的 accept方法,这个方法是阻塞试的
* 3.客服端如果发过来数据,那么服务端要使用对应的客服端对象,并获取到该客服端对象的读取流来读取发过来的数据并打印
* 4.关闭(可选)
* @author Administrator
*
*/
class TcpSeverce{
private void mian() throws Exception {
//建立服务端,并监听端口
ServerSocket ss=new ServerSocket(10003);
//获取连接过来的客服端对象
Socket s=ss.accept();
//获取客服端发过来的数据,读取数据
InputStream in=s.getInputStream();
String ip=s.getInetAddress().getHostAddress();
byte[] buf=new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
s.close();
ss.close();
}
}
public class TCP {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}