java socket传输过程中 字符串加回车换行的问题

客户端publicclassConnectTest{privatestaticintport=30000;publicstaticvoidmain(String[]arg... 客户端
public class ConnectTest {
private static int port=30000;
public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException{
Socket s=new Socket(ip,port);
System.out.println("Connect success");
OutputStream os=s.getOutputStream();
os.write("key\n".getBytes("utf-8"));
os.close();
s.close();
}
}
服务器端
public class ServerThread extends Thread {
Socket threadS;
BufferedReader br;
public ServerThread(Socket s) throws IOException{
threadS=s;
br=new BufferedReader(new InputStreamReader(threadS.getInputStream(),"utf-8"));
}

public void run(){
String content;
while((content=getClientContent())!=null){
//do some process
if(content=="key"){ //注意这边了
System.out.println("success"+content);
}
else{
System.out.print("failed"+content);
}
}
}
public String getClientContent(){
try{
return br.readLine();
}
catch(IOException e){//if the connect is unusually ,remove the socket in the list
PCServer.removeSocket(threadS);
}
return null;
}
}
很简单的一个cs结构的例子,但为什么客户端的"key\n" readline()之后不久该是”key“吗? 但实际输出的是failedkey,即使不相等,我编码都用了utf-8了,也尝试了\r\n什么的。。,请问下是为什么? windows环境
展开
 我来答
liup1
2014-03-12 · TA获得超过1261个赞
知道小有建树答主
回答量:741
采纳率:80%
帮助的人:398万
展开全部
if(content=="key"){

这句话content.equals("key")
字符串不能直接用==比较
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式