好的,帮我看看
class sender{
private Socket sendSocket = null;
private String receiveName ;
private PrintWriter messageSender = null;
private int port = 0;
int builtTimes = 0;
boolean isBuiltOk = true;
//--------------------------
int builtSocket(){
try{
sendSocket = new Socket(receiveName,port);
//System.out.println("send at:"+receiveName+" at port:"+port);
return 2;
}catch(UnknownHostException e){
System.out.println("Unknown host"+receiveName+":"+e);
return 0;
}catch(IOException e){
port++;
System.out.println("rebuilt at port"+port);
return 1;
}
}
//--------------------------
void sendMessage(String message){
messageSender.println(message);
}
//--------------------------
public sender(String receiveName , int p){
this.port = p;
this.receiveName = receiveName;
int toBuiltClient = this.builtSocket();
while(toBuiltClient != 2){
builtTimes++;
toBuiltClient = this.builtSocket();
if (toBuiltClient == 0) break;
if(this.builtTimes>2) {this.isBuiltOk=false;return;}
}
try{
//System.out.println("trying");
messageSender = new PrintWriter(sendSocket.getOutputStream(),true);
}catch(UnknownHostException e){
System.out.println("Unknown host"+receiveName+":"+e);
}catch(IOException e){
System.out.println("Failed I/O to "+receiveName+":"+e);
}
}
}
//
sendTest.sendMessage("r u ok");
sendTest.messageSender.flush();
sendTest.sendMessage("r u ok ag");
sendTest.messageSender.flush();
class sender{
private Socket sendSocket = null;
private String receiveName ;
private PrintWriter messageSender = null;
private int port = 0;
int builtTimes = 0;
boolean isBuiltOk = true;
//--------------------------
int builtSocket(){
try{
sendSocket = new Socket(receiveName,port);
//System.out.println("send at:"+receiveName+" at port:"+port);
return 2;
}catch(UnknownHostException e){
System.out.println("Unknown host"+receiveName+":"+e);
return 0;
}catch(IOException e){
port++;
System.out.println("rebuilt at port"+port);
return 1;
}
}
//--------------------------
void sendMessage(String message){
messageSender.println(message);
}
//--------------------------
public sender(String receiveName , int p){
this.port = p;
this.receiveName = receiveName;
int toBuiltClient = this.builtSocket();
while(toBuiltClient != 2){
builtTimes++;
toBuiltClient = this.builtSocket();
if (toBuiltClient == 0) break;
if(this.builtTimes>2) {this.isBuiltOk=false;return;}
}
try{
//System.out.println("trying");
messageSender = new PrintWriter(sendSocket.getOutputStream(),true);
}catch(UnknownHostException e){
System.out.println("Unknown host"+receiveName+":"+e);
}catch(IOException e){
System.out.println("Failed I/O to "+receiveName+":"+e);
}
}
}
//
sendTest.sendMessage("r u ok");
sendTest.messageSender.flush();
sendTest.sendMessage("r u ok ag");
sendTest.messageSender.flush();
解决方案 »
- 一道逻辑测试题~!猛人进~!
- 大家来看看吧!
- 两个FRAME中参数回传的问题
- 检测您JAVA基本功是否扎实的问题!!开开心心快快乐乐送分题!祝朋友们编程的时候注意身体!
- 请教:如何在匿名内部类中使用构造函数里面的声明?
- 为什么我的applet上的时间不会刷新?
- 我用jsp调用一个类文件,如何把类中的System.out.print("")信息输出在jsp页面端
- 关于图像绘制问题
- 虚心请教,如何处理JComboBox的事件?cb.addItemListener(this);这句话为什么错了。急急急!!
- 成绩
- 同时安装j2sdk和jbuilder,j2sdk下无法编译.java文件。WHY!!!
- 这个案例有错误望赐教!太过简单了简直是送分!
却收不到:r u ok ag
!!!????????????
检查一下是不是服务器那端关了,服务器要用一个循环不断read
看看吧
public void run(){
String nowMessage = "";
while(runing){
try {
clientSock = severSock.accept();
// System.out.println("accept...........");
messageReceiver = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
nowMessage = messageReceiver.readLine();
jEditorPane1.setText(jEditorPane1.getText()+"\n"+nowMessage);
//-----
if (nowMessage.equals("NO")){
JOptionPane.showMessageDialog(null,"玩家"+joinGame.nPlayer.playersAdress+"不想于你联机","亏!",JOptionPane.INFORMATION_MESSAGE);
}
//-----------
else if (nowMessage.equals("YES")){
JOptionPane.showMessageDialog(null,"玩家"+joinGame.nPlayer.playersAdress+"同意于你联机","OK!",JOptionPane.INFORMATION_MESSAGE);
joinGame.nowTurn = nowTurn;
joinGame.start();
System.out.println("joinGame start");
}
//-----------
else if (nowMessage.substring(0,5).equals("hello")){
int i = JOptionPane.showConfirmDialog(null,"玩家"+nowMessage.substring(6)+"想与你联机,允许吗?","提示!",JOptionPane.INFORMATION_MESSAGE);
sendToJoin = new sender(nowMessage.substring(6),receiverport);
if (sendToJoin.isBuiltOk){
System.out.println("sendToJoin built ok:"+sendToJoin.receiveName);
if (i==0){
sendToJoin.sendMessage("YES");
hostGame.nPlayer.playersAdress = nowMessage.substring(6);
hostGame.nowTurn = nowTurn;
hostGame.start();
System.out.println(nowMessage.substring(6));
System.out.println("hostGame start");
}else sendToJoin.sendMessage("NO");
// System.out.println("hostGame still waiting");
}
}
//----------
else if (nowMessage.substring(0,7).equals("message")){
jEditorPane1.setText(jEditorPane1.getText()+"\n"+":"+nowMessage.substring(8));
}
//-------------
else if (nowMessage.substring(0,8).equals("Position")){
StringTokenizer NM = new StringTokenizer(nowMessage,"+");
NM.nextToken();
String whoTurn = NM.nextToken();
System.out.println("receive turn ="+whoTurn);
if (whoTurn.equals("joinGame")){
if (joinGame.runing){
joinGame.nPlayer.xPosition = Integer.parseInt(NM.nextToken());
joinGame.nPlayer.yPosition = Integer.parseInt(NM.nextToken());
nowTurn = 2;//joinGame.nowTurn;
}
}
else if (whoTurn.equals("hostGame")){
if (hostGame.runing){
hostGame.nPlayer.xPosition = Integer.parseInt(NM.nextToken());
hostGame.nPlayer.yPosition = Integer.parseInt(NM.nextToken());
nowTurn = 1;//hostGame.nowTurn;
}
}
}
//receivedMessage = nowMessage;
clientSock.close();
}catch(IOException e){
System.err.println("wrong"+e);
}
try {
this.sleep(500);
}
catch(Exception e){
System.out.println("wrong"+e);
}
}
}