爱玺玺

爱玺玺的生活日记本。wx:lb87626

检测和解决端口冲突

ReverseService.java

import java.net.ServerSocket;

import java.net.Socket;


public class ReverseService{

public static void main(String[] args) throws Exception{

ServerSocket  ss;

if(args.length<1){

ss=new ServerSocket(8002);

}else{

ss=new ServerSocket(Integer.parseInt(args[0]));

}

boolean bRunning=true;//绕开编译器问题

while(bRunning){

   Socket s=ss.accept();//没有连接会阻塞,有连接继续执行下面代码重新建立个Socket等待另一个新连接

   new Thread(new Servicer(s)).start();//执行会话线程的代码写在Runnable中,这里是Servicer对象包装s对象,这里是new一个个对象不是调用对象的一个方法,因此不能用Socket

}

ss.close();

}

}


TcpClient.java


import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.InetAddress;

import java.net.Socket;


public class TcpClient{

public static void main(String[] args) throws Exception{

if(args.length<2){

System.out.println("请输入ip和端口地址:");

return;

}

Socket s=new Socket(args[0],Integer.parseInt(args[1]));// 当Client程序需要从Server端获取信息及其他服务时,应创建一个Socket对象,Socket类型是一个,实现一个端口

InputStream ips=s.getInputStream();

OutputStream ops=s.getOutputStream();

BufferedReader brNet=new BufferedReader(new InputStreamReader(ips));

PrintWriter pw=new PrintWriter(ops,true);

BufferedReader brKeyBord=new BufferedReader(new InputStreamReader(System.in));//获取键盘输入的字节流

   while(true){

    String strword=brKeyBord.readLine();

    pw.println(strword);//写入到服务器端

    if(strword.equalsIgnoreCase("quit")){

    break;

    }

    System.out.println(brNet.readLine());//获取的服务器数据打印

   }

   pw.close();

   brNet.close();

   brKeyBord.close();

   s.close();

}

}


发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5