笔记,TCP协议socket网络编程

来源:互联网 发布:回忆杀网络用语 编辑:程序博客网 时间:2024/06/05 00:30
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


/**
 * 服务器端TCP
 * @author song
 *
 */
public class Serverme {
public static void main(String[] args) throws IOException{
//创建服务端Socket
ServerSocket  serverSocket = new ServerSocket(5000);
//用accept()方法监听客户端
Socket socket;
System.out.println("*****启动服务端*****");
socket = serverSocket.accept();
//创建输入流接受客户请求,转成二进制
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
//创建输出流,转成二进制
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//用循环执行对话
boolean choose = true;
//
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(choose){
//读取成UTF-8格式
String mess = dis.readUTF();
System.out.println("客户问你:"+mess);


if(mess.equals("滚")){
choose = false;
dos.close();
os.close();
dis.close();
is.close();
serverSocket.close();
}else{
System.out.println("输入你的回复");
String message = br.readLine();
dos.writeUTF(message);
dos.flush();
}
}
}

}

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;


/**
 * 客户端
 * @author song
 *
 */
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
//创建客户端
Socket socket = new Socket("localhost", 5000);
// 获取服务端输入流
InputStream is = socket.getInputStream();
DataInputStream dis = new DataInputStream(is);
//输出流
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//接收键盘输入,暂时存在BufferedReader里
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("客户端启动");
boolean choose = true;
while(choose){
//
String mess = br.readLine();
//
dos.writeUTF(mess);
dos.flush();
if(mess.equals("滚")){
break;
}
//接受服务端的回复
String message = dis.readUTF();
System.out.println("服务端回复"+message);
}

}
}

0 0
原创粉丝点击