标题:socket编程界面不响应的问题
取消只看楼主
yanglu252
Rank: 1
等 级:新手上路
帖 子:27
专家分:4
注 册:2009-11-1
结帖率:66.67%
已结贴  问题点数:30 回复次数:1 
socket编程界面不响应的问题
我做的是一个图形界面,用了socket建立了client和server,点击发送就会执行发送功能。可是每次一点击发送,图形界面就出现问题不能正常工作,不能移动,不能正常关闭了。这是为什么呢?可以的话帮我修改一下程序 谢谢了!!!
button触发事件:
button_1.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Client.client(text_1.getText());
  }
  });

Client程序:
import    
import    
import    
import    
import    
import    
   
public class Client {   
  public static void client(String string) {   
  Socket socket = null;   
  int serverPort=Integer.parseInt(string); //将main函数中的string变为整型
  try {   
  socket = new Socket("127.0.0.1",serverPort); // 将IP赋给Socket的端口号
  //向服务器端第一次发送字符串   
  OutputStream netOut = socket.getOutputStream();   
  DataOutputStream doc = new DataOutputStream(netOut);   
  DataInputStream in = new DataInputStream(socket.getInputStream());   
  //向服务器端第二次发送字符串   
  doc.writeUTF(NodeB.sendRandomb()); //调用NodeB中接收到的随机数
  String res = in.readUTF();   
  System.out.println(res);   
  in.close();   
  } catch (UnknownHostException e) {   
  e.printStackTrace();   
  } catch (IOException e) {   
  e.printStackTrace();   
  } finally {   
  if (socket != null) {   
  try {   
  socket.close();   
  } catch (IOException e) {   
  }   
  }   
  }   
  }   
}   
sever程序:
import    
import    
import
import
import    
import    
import    
   
public class Server {   
  /**   
  * @param args   
  * @throws IOException   
  */   
File f = new File("H:\\eclipse\\workspace\\Certification","randomb.txt");// 新建一个存储数据的TXT文件
  public static void main(String[] args)  
  {   
  Server manager = new Server();   
  manager.doListen();   
  }   
   
  public void doListen()  
  {   
  ServerSocket server;   
  try {   
  server = new ServerSocket(9999);   
  while (true)
  {   
  Socket client = server.accept();   
  new Thread(new SSocket(client)).start();   
  }   
  }  
  catch (IOException e)  
  {   
  e.printStackTrace();   
  }   
  }   
   
  //服务器进程   
  public static class SSocket implements Runnable  
  {   
   
  Socket client;   
   
  public SSocket(Socket client)  
  {   
  this.client = client;   
  }   
  public static String listMsg;
  private boolean stop = false;

  public static String getListMsg(){
  return listMsg;
  }
  public void setListMsg(String listMsg2){
  SSocket.listMsg = listMsg2;   
  }

  public boolean isStop(){
  return stop;
  }
  public void run()  
  {   
  DataInputStream input;   
  DataOutputStream output;   
  try {   
  input = new DataInputStream(client.getInputStream());   
  output = new DataOutputStream(client.getOutputStream());   
  FileWriter randomb=new FileWriter("randomb.txt");
  listMsg = input.readUTF();   
  randomb.write(listMsg );
  stop=true;  
  randomb.flush();
  randomb.close();
  } catch (IOException e)  
  {   
  e.printStackTrace();   
  }
  System.out.println(listMsg+"Server");
  }   
  }   
}
搜索更多相关主题的帖子: socket 界面 
2010-04-08 22:33
yanglu252
Rank: 1
等 级:新手上路
帖 子:27
专家分:4
注 册:2009-11-1
得分:0 
以下是引用cnfarer在2010-4-9 08:21:24的发言:

text1中输入的是什么?应该是9999吧!
是的啊
2010-04-09 20:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302268-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.179886 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved