和socket编程有关的几个类:
InetAddress
Socket:用在客户端
ServerSocket:用在服务器端
一。点对点通信
服务器端:
package server;
import java.io.*;
import java.net.*;
public class Server {
private int port;
public Server(int port){
this.port=port;
start();
}
//将从客户端收到的信息转化为大写的
public String process(String line){
return line.toUpperCase();
}
public void start(){
try{
//根据端口创建套接字
ServerSocket myscoket=new ServerSocket(port);
//显示连接信息
System.out.println("服务器启动完成,监听端口在"+port);
System.out.println("正在等待客户连接.........");
//挂起等待客户的请求
Socket connection=myscoket.accept();
//测试
System.out.println("客户发来连接请求.........");
//获取读取客户端的数据流
BufferedReader in=new BufferedReader(new InputStreamReader(connection.getInputStream()));
//获取写往客户端的数据输出流,true表示自动刷新
PrintWriter out=new PrintWriter(connection.getOutputStream(),true);
//向客户发送欢迎的信息
out.println("您好,服务器连接成功!");
out.println("输入bye断开与服务器的连接");
boolean done=false;
while(!done){
//读取客户端的内容
String line=in.readLine();
if(line==null){
done=true;
}else{
//从服务器端显示客户端发送的信息
System.out.println("从客户端来的内容"+line);
//信息处理
String message=process(line);
//向客户端发送信息
out.println("从服务器端口发送的信息"+message);
if(line.trim().equals("BYE"))
done=true;
}
}
//关闭通信
connection.close();
}catch(Exception e){
System.out.println(e);
}
}
}
package server;
public class ServerDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length!=1){
System.out.println("运行方式:java Server <端口号>");
return;
}
try{
//获得端口号
int port=Integer.parseInt(args[0]);
Server myserver=new Server(port);
}catch(Exception e){
System.out.println(e);
}
}
}
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!