TCP特点:
面向连接,对方必须在
三次握手完成连接,我:在吗;你:我在;我:我知道了
大数据量传输
速度稍慢
package cn.test5;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/*
* 利用TCP协议发送数据:
* 第一步:创建发送端的Socket对象
* 这一步如果成功,就说明连接已经建立成功了。
*
* 第二步:获取输出流,写数据
*
* 第三步:释放资源
*
* java.net.ConnectException: Connection refused: connect
*
*/
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s=new Socket("192.168.0.102",10088);
OutputStream outputStream = s.getOutputStream();
outputStream.write("您好".getBytes());
InputStream inputStream = s.getInputStream();
byte[] b=new byte [1024*1];
int len = inputStream.read(b);
String replyMessage=new String(b, 0, len);
System.out.println(replyMessage);
s.close();
}
}
package cn.test5;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 利用TCP协议接收数据:
* 第一步:创建接收端的Socket对象
* 第二步:监听客户端连接。返回一个对应的Socket对象
* 第三步:获取输入流,读取数据显示在控制台
* 第四步:释放资源
*/
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket ss=new ServerSocket(10088);
Socket socket = ss.accept();
InputStream inputStream = socket.getInputStream();
byte [] b=new byte[1024];
int len = inputStream.read(b);
String message=new String(b,0,len);
String address = socket.getInetAddress().getHostAddress();
System.out.println(""+message+" 来自 "+address);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("我是来自服务端的反馈消息".getBytes());
socket.close();
//ss.close();
}
}