标签:
TCP发送接收数据
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
/*
* TCP协议发送数据:
* A:创建发送端的Socket对象
* 这一步如果成功,就说明连接已经建立成功了。
* B:获取输出流,写数据
* C:释放资源
*
* 连接被拒绝。TCP协议一定要先看服务器。
* java.net.ConnectException: Connectionrefused: connect
*/
public classClientDemo {
public static void main(String[] args)throws IOException {
// 创建发送端的Socket对象
// Socket(InetAddress address, int port)
// Socket(String host, int port)
// Socket s = newSocket(InetAddress.getByName("192.168.12.92"), 8888);
Sockets = newSocket("219.216.80.19", 8888);
// 获取输出流,写数据
// public OutputStream getOutputStream()
OutputStreamos = s.getOutputStream();
os.write("hello,tcp,我来了".getBytes());
// 释放资源
s.close();
}
}
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
*TCP协议接收数据:
* A:创建接收端的Socket对象
* B:监听客户端连接。返回一个对应的Socket对象
* C:获取输入流,读取数据显示在控制台
* D:释放资源
*/
public class ServerDemo {
publicstatic void main(String[] args) throws IOException {
//创建接收端的Socket对象
//ServerSocket(int port)
ServerSocketss = new ServerSocket(8888);
//监听客户端连接。返回一个对应的Socket对象
//public Socket accept()
Sockets = ss.accept(); // 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
//获取输入流,读取数据显示在控制台
InputStreamis = s.getInputStream();
byte[]bys = new byte[1024];
intlen = is.read(bys); // 阻塞式方法
Stringstr = new String(bys, 0, len);
Stringip = s.getInetAddress().getHostAddress();
System.out.println(ip+ "---" + str);
//释放资源
s.close();
//ss.close(); //这个不应该关闭
}
}
TCP发送接收图解:
标签:
原文地址:http://blog.csdn.net/wangyanming123/article/details/51347164