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

TCP发送接收数据(一)

2016-05-08 19:21 471 查看
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
class
ClientDemo {
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发送接收图解:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: