新手学习socket编程,遇到问题,求大神帮忙!

祈福wyear 2016-07-14 10:39:38

//模拟转大写服务器,客户端输入小写字符串,服务器端进行处理,返回给客户端
//遇到的问题,第一次小写转大写可以,当进行第二次请求时候,就会出现错误(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();
}
}



...全文
199 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
异常异长 2016-07-21
  • 打赏
  • 举报
回复
while(true) 必须保持循环读流 在不需要时 break掉
java叶新东 2016-07-20
  • 打赏
  • 举报
回复
服务器端的全部程序用个死循环包围住就行了
ITjavaman 2016-07-15
  • 打赏
  • 举报
回复
这个问题很简单吧- -,看你的服务端代码,最后是不是把连接关闭了,第一次执行完连接都关闭了, 第二次肯定失败,你这里可以加个循环满足你的需求

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧