下边的代码,如果我去掉红色部分,client端就能执行通过,只是不能所收到server的返回值,但是如果我加上红色部分,程序就卡死在那里了,请问,我如何才能既发送到服务器端,又能接收到服务器的返回信息呢?
void beginlogin()
{
String send_info=Main.sessionno.toString().trim()+","+Main.sessionpwd.toString().trim();
try{
link_server_ip=java.net.InetAddress.getByName("www.abc.net").getHostAddress().toString();
link_sa=new java.net.InetSocketAddress(link_server_ip,java.lang.Integer.parseInt(link_sports));
link_server.connect(link_sa);
link_sosw=new OutputStreamWriter(link_server.getOutputStream());
link_bwout=new BufferedWriter(link_sosw);
link_in=new BufferedReader(c_isr=new InputStreamReader(link_server.getInputStream()));
link_bwout.write(Main.flag.toString().trim()+","+Main.sessionno.toString().trim()+","+Main.sessionpwd.toString().trim());
link_bwout.flush();
String readstr=null;
while(true)
{
if((readstr=link_in.readLine())==null)
{
break;
}
else
{
jLabel1.setText((readstr=link_in.readLine()));
}
}
[size=16px][/size][b][/b]
link_server.close();
}
catch(Exception e)
{
}
}
------解决方案--------------------
- Java code
serverpackage com.half.socket;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ServerSocketImpl { public static void main(String[] args){ try { ServerSocket serverS=new ServerSocket(1234); Socket socketC=null; while(true){ socketC=serverS.accept(); DealSocket cl=new DealSocket(socketC); new Thread(cl).start(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}