Java网络编程

一、网络: 将不同区域的电脑连接到一起,  局域网、城域网、广域网
二、IP :位置
      端口:区分数据流向的软件   0-65535  
不要使用1024以下的端口 ,每一个协议拥有自己的端口,在同一个协议下端口不能重复
<FTP:21>
HTTP:80  

三、URL:统一资源定位符
四、资源的传输协议
     TCP:TCP(transfer control protocol)    打电话
面向连接、安全、可靠,效率低
     UDP: UDP(UserDatagramProtocol )  发送短信
非面向连接、不安全、数据可能丢失 、效率高
五、UDP编程: DatagramSocket   DatagramPacket
1、服务器:
a)、创建服务器 指定端口
b)、准备接收容器 字节数组 +封装成数据包
c)、接收数据
d)、分析数据
e)、释放资源
2、客户端:
a)、创建客户端 指定端口
b)、准备数据 字节数组
c)、封装成数据包  需要指定包发送 的地址+端口  即服务器地址与端口
d)、发生数据
e)、释放资源
六、TCP编程:ServerSocket  Socket
1、服务器:
a)、创建服务器 指定端口
b)、等待客户端连接
c)、分析接收数据
2、客户端:
a)、创建客户端 +指定服务器地址 +端口
b)、发送数据

代码:

public class Client {

public static void main(String[] args) throws Exception {
//创建socket对象
Socket socket = new Socket("127.0.0.1",10001);
//获取键盘输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入一个字符串:");
//创建输出流
BufferedWriter bufout= new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//获取输入流
BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
String line = null;
while((line=br.readLine())!=null){
bufout.write(line);
bufout.newLine();
bufout.flush();
String str = bufIn.readLine();
System.out.println("server:"+str);
}
br.close();
socket.close();
}
}


public class Server {

public static void main(String[] args) throws IOException {
//监听10001端口
ServerSocket ss = new ServerSocket(10001);
System.out.println("server start..");
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"...connected");
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//创建一个输出流
   BufferedWriter bufout= new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); 
   String line= null ;
while ((line = br.readLine()) != null) {
//反转字符串
StringBuffer sb = new StringBuffer(line); 
String str = sb.reverse().toString();
//将反转后的字符输出到客户端
bufout.write(str); 
bufout.newLine();
bufout.flush();

}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值