初次接触socket编程,平时用java用得也少,对输入输出流不太了解,做实验时记录一下。可能对小白也有帮助。
一、利用TCP传字符串
1、代码
利用TCP从client端传字符串到server端,转换成大写后返回给client端显示,代码如下,略去导入部分:
客户端:
public class TCPClient {
public static void main(String argv[]) throws UnknownHostException, IOException {
String sentence;
String modifiedSentence;
BufferedReader informUser=new BufferedReader(new InputStreamReader(System.in));//定义字符输入流对象,从键盘读入数据
Socket clientSocket=new Socket("localhost",6789);//定义client端地址与端口
DataOutputStream outToServer=new DataOutputStream(clientSocket.getOutputStream());//给socket赋予输出流
BufferedReader infromServer=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));//给socket赋予输入流
sentence=informUser.readLine();//获取键盘输入流中的字符串
outToServer.writeBytes(sentence+'\n');//socket输出到服务端 面向字符流,可以直接发送String类型
modifiedSentence=infromServer.readLine();//从服务端获取字符串
System.out.println("from server :"+modifiedSentence);//打印到控制台
clientSocket.close();//关闭socket
}
}
服务端:
public class TCPServer {
public static void main(String argv[]) throws IOException {
String Clientsentence;
String capitalizedSentence;
ServerSocket welcomeSocket=new ServerSocket(6789);//创建绑定到特定端口的serversocket
while(true) {//当有其他进程时都建立连接
Socket connectionSocket=welcomeSocket.accept();//持续监听,连接到后返回socket连接对象
BufferedReader infromClient=