网络编程TCP
package cn.hb.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String [] args){
try {
//创建一个ServerSocket 在端口9865监听客户亲求
ServerSocket ss =new ServerSocket(9865);
//accept 方法阻塞,直到有客户连接时返回一个Socket对象
Socket socket =ss.accept();
//向客户端传输数据,约定“over”代表数据传输结束
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println("欢迎访问服务器!");
out.println("over");
out.flush();
//读取客户端传递过来的数据
BufferedReader br =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String line;
while((line = br.readLine()) !=null){
if("over".equals(line)){ //如果接收到的数据是"over"结束循环
break;
}
System.out.println("客服端消息:"+ line);
}
//关闭流
br.close();
out.close();
socket.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package cn.hb.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.xml.ws.handler.MessageContext.Scope;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
//创建客户端Socket,指定服务器Socket的地址和端口
try {
Socket socket= new Socket(InetAddress.getLocalHost(),9865);
//读取服务器传过来的数据
BufferedReader br =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String line;
while((line =br.readLine())!=null){
if("over".equals(line)){ //如果接收到的数据是“over”结束循环
break;
}
System.out.println("服务器消息:"+line);
}
//向服务器发送数据
PrintWriter out =new PrintWriter(socket.getOutputStream());
out.println("你好服务器!");
out.println("再见服务器!");
out.println("over");
out.flush();
//关闭流和Socket
br.close();
out.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}