前言:各位周末愉快,因匿名台风来袭,窗外又是一波风雨交加,所以又是哪都不想去……话说给我天晴还不是一样窝在家里。。。好了,这篇是总结了tcp的socket,各种例子,应该是比较全了,记在这里,用到时可以过来瞄一眼。
原文出处:http://blog.csdn.net/u014158743/article/details/52895401
Socket网络这块很重要的是指定ip地址,端口号等基本信息。这些信息被封装在InetAddress中,所以先上一个小Demo介绍InetAddress的几个基本方法。
##InetAddress入门Demo
public static void main(String[] args) throws UnknownHostException {
// TODO Auto-generated method stub
// 获取本地主机的IP地址对象
//InetAddress inet = InetAddress.getLocalHost();
//获取任意一台主机的ip地址对象
InetAddress inet = InetAddress.getByName("www.baidu.com");
// 获取ip地址
String address = inet.getHostAddress();
// 获取主机名
String name = inet.getHostName();
System.out.println(name + ":" + address);
}
##使用 Tcp 协议实现客户端给服务器端发送数据
###TcpClient
/**
* 使用 Tcp 协议实现客户端给服务器端发送数据
* 1:创建Socket端点,同时指明连接的服务器和端口
* 2:使用Socket的发送功能发送数据
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("客户端启动......");
//创建Socket客户端端点,同时指明连接的服务器和端口
//这条语句执行成功,说明客户端对象创建成功,同时说明和服务器端连接成功
//如果连接成功,说明和服务器端建立了一条通道
//这条通道就是 Socket流(就是Socket客户端对象),这个Socket流中既有字节输入流,也有字节输出流
Socket s = new Socket(InetAddress.getByName("192.168.1.212"),55555);
//向服务器端发送数据
//发送数据就是输出---从 Socket流中获取输出流
OutputStream out = s.getOutputStream();
//发送数据
out.write("哥们,你好".getBytes());
//接收数据
InputStream in = s.getInputStream();
byte[] arr = new byte[1024];
int len =in.read(arr);
System.out.println(new String(arr,0,len));
s.close();
}
###TcpServer
/**
* 使用 Tcp实现服务器端
* 1:创建 Socket端点,同时监听端口
* 2:
* @throws IOException
*/
public static void main(String[] args) throws IOException {
System.out.println("服务器端启动......");
//1:创建 Socket端点,同时监听端口