51,407
社区成员
发帖
与我相关
我的任务
分享
//模拟转大写服务器,客户端输入小写字符串,服务器端进行处理,返回给客户端
//遇到的问题,第一次小写转大写可以,当进行第二次请求时候,就会出现错误(Connection refused: connect)
// 客户端
package cn;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
while(true){
System.out.println("请输入要转大写的英文字母:");
Scanner scanner= new Scanner(System.in);
String str=scanner.nextLine();
//创建socket
Socket socket= new Socket("127.0.0.1", 10004);
//创建输出流输入流
OutputStream outputStream=socket.getOutputStream();
InputStream inputStream=socket.getInputStream();
//输出给服务器端
outputStream.write(str.getBytes());
//接受服务器端发来的数据
byte[]buf=new byte[1024];
int len=inputStream.read(buf);
System.out.println("转大写后"+(new String(buf,0,len)));
}
}
}
//服务器端
package cn;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket serverSocket= new ServerSocket(10004);
Socket socket=serverSocket.accept();
System.out.println(socket.getInetAddress().getHostAddress()+"connecting.....");
InputStream inputStream= socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
//读取客户端发来的数据
byte[]buf=new byte[1024];
int len=inputStream.read(buf);
String str=new String(buf, 0, len);
System.out.println(str);
//逻辑处理
String smallStr=str.toUpperCase();
outputStream.write(smallStr.getBytes());
socket.close();
//serverSocket.close();
}
}