---------------------------------------java中TCP通信-------------------------------------------
示例代码:
/**
* TCP服务器
* @author李昆鹏
*
*/
public class TCPServer {
public static void main(String[] args) {
//创建服务器的服务套接字
ServerSocket ss = null;
Socket s =null;
BufferedReader br = null;
try {
ss = new ServerSocket(10011);
//接收到了一个连接的请求,返回以socket对象
//等待有客服端来建立连接
s = ss.accept();
//获得输入输出流的对象
OutputStream os = s.getOutputStream();
InputStream in = s.getInputStream();
br = new BufferedReader(new InputStreamReader(in));
InetAddress ia = s.getInetAddress();
while (true) {
//读取一行
String line = br.readLine();
System.out.println(line);
if("exit".equals(line)) {
System.out.println("程序已经退出");
break;
}
//获得客户端的IP地址
System.out.println(ia.getHostAddress() + "发送了:" + line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//先关闭流
try {
if(br != null)
br.close();
if(s != null)
s.close();
if(ss != null)
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
------------------------------------------------------------
public class TCPClient {
public static void main(String[] args) {
//创建套接字对象,去请求服务器的ServerSocket
Socket s = null;
BufferedWriter writer = null;
BufferedReader br = null;
try {
s = new Socket("192.168.1.104",10011);
//获得输出流
OutputStream out = s.getOutputStream();
//获得从控制台输入的流对象
br = new BufferedReader(new InputStreamReader(System.in));
writer = new BufferedWriter(new OutputStreamWriter(out));
while(true) {
System.out.println("请输入:");
String line = br.readLine();
writer.write(line);
writer.newLine();
writer.flush();
//在退出程序之前一定要先换行再清空缓冲区
if("exit".equals(line)) {
System.out.println("程序已经退出");
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(writer != null)
writer.close();
if(s != null)
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}