java server 不输出_java Server的问题 这个连接建立不起来,求教

publicclassTicTacToeServerextendsJFrame{privatechar[]board;privateJTextAreaoutputArea;privatePlayer[]players;privateServerSocketserver;privateintcurrentPlayer;privatefina...

public class TicTacToeServer extends JFrame {

private char[] board;

private JTextArea outputArea;

private Player[] players;

private ServerSocket server;

private int currentPlayer;

private final int PLAYER_X = 0, PLAYER_O = 1;

private final char X_MARK = 'X', O_MARK = 'O';

public TicTacToeServer()

{

super( "Tic-Tac-Toe Server" );

board = new char[ 9 ];

players = new Player[ 2 ];

currentPlayer = PLAYER_X;

try {

server = new ServerSocket( 12345, 2 );

}

catch( IOException ioException ) {

ioException.printStackTrace();

System.exit( 1 );

}

outputArea = new JTextArea();

getContentPane().add( outputArea, BorderLayout.CENTER );

outputArea.setText( "Server awaiting connections\n" );

setSize( 300, 300 );

setVisible( true );

}

public void execute()

{

for ( int i = 0; i < players.length; i++ ) {

try {

players[ i ] = new Player( server.accept(), i );

players[ i ].start();

}

catch( IOException ioException ) {

ioException.printStackTrace();

System.exit( 1 );

}

}

synchronized ( players[ PLAYER_X ] ) {

players[ PLAYER_X ].setSuspended( false );

players[ PLAYER_X ].notify();

}

}

public static void main( String args[] )

{

TicTacToeServer application = new TicTacToeServer();

application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

application.execute();

}

private class Player extends Thread {

private Socket connection;

private DataInputStream input;

private DataOutputStream output;

private int playerNumber;

private char mark;

protected boolean suspended = true;

public Player( Socket socket, int number )

{

playerNumber = number;

mark = ( playerNumber == PLAYER_X ? X_MARK : O_MARK );

connection = socket;

try {

input = new DataInputStream( connection.getInputStream() );

output = new DataOutputStream( connection.getOutputStream() );

}

catch( IOException ioException ) {

ioException.printStackTrace();

System.exit( 1 );

}

} // end Player constructor

public void run()

{

} // end method run

} // end class Player

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android懒加载WebView可以通过Fragment的方式来实现,具体步骤如下: 1. 在布局文件中添加一个FrameLayout用于显示WebView。 2. 创建一个继承自Fragment的类,重写onCreateView()方法,在该方法中加载WebView,并使用setUserVisibleHint()方法来判断是否需要加载WebView。 3. 在Activity中,使用ViewPager来实现选项卡效果,每个选项卡对应一个WebViewFragment。 4. 在ViewPager的OnPageChangeListener中,通过调用WebViewFragment的setUserVisibleHint()方法来判断是否需要加载WebView。 下面是一些常见问题的解答: 1. 如何判断WebView是否需要重新加载? 可以在WebViewFragment中保存一个boolean类型的变量,用来表示WebView是否已经加载过。在setUserVisibleHint()方法中判断该变量的值,如果为false,则加载WebView,否则不做任何操作。 2. 如何处理WebView的缓存? 可以在WebView的设置中设置WebViewClient,重写shouldInterceptRequest()方法,在该方法中判断是否需要使用缓存。例如,可以将静态资源缓存在本地,每次加载时先判断本地是否有缓存,如果有则直接加载本地缓存,否则重新从网络上加载。 3. 如何处理WebView的内存泄漏? 可以在WebViewFragment中重写onDestroyView()方法,调用WebView的destroy()方法来销毁WebView,确保WebView的资源被释放。同时,在Activity中,可以通过调用System.gc()方法来触发垃圾回收,释放WebView占用的内存。 希望以上内容能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值