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

基于TCP通信的套接字Socket

2016-10-08 17:15 155 查看
服务端

/**
* 基于tcp传输协议(浏览器就是基于http或者https应用协议,tcp传输协议的一个客户端)
* @author Administrator
* 1、创建服务端+端口
* 2.发送数据+接收数据
*/
public class Server {

public static void main(String[] args) {
try {
ServerSocket  server =new ServerSocket(8888);//不同协议可以采用相同的端口
Socket socket =server.accept();//等待被动请求建立连接
System.out.println("你请求到了,客户端建立连接");
String str ="这是我模拟的数据";
//1,处理字符串的一种方式BufferedWriter
/*BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(str);//阻塞式的方法,要么加上结束符,要么加上newline
writer.newLine();
writer.flush();//服务器不要关闭*/
//2,处理字符串比较方便的另外一种流的方式DataOutputStream
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(str);
dos.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

}

客户端

/**
* 建立客户端连接tcp的连接必须是服务端不能停止
* @author Administrator
*1、建立客户端+地址和端口
*2、接收数据+发送数据
*/
public class Client {

public static void main(String[] args) {
try {
Socket client =new Socket("localhost",8888);//建立连接
//1,处理字符串的一种方式BufferedReader
/*BufferedReader reader =new BufferedReader(new InputStreamReader(client.getInputStream()));
String src =reader.readLine();
System.out.println(src);*/
//2,处理字符串比较方便的另外一种流的方式DataInputStream
DataInputStream dis = new DataInputStream(client.getInputStream());
String src=dis.readUTF();
System.out.println(src);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket