Soket小试

越简单越好,网络编程简单理解就是两台计算机以某种方式相互通信。 java的sdk提供了相对简单的api来实现。 Soket就是其中之一。存在于java.net包里。

网络编程的基本模型就是C/S模型。 一个server建立好端口就在那监听消息,客户端也要知道server的具体位置(IP),然后往那里发送消息。 数据交换必然要用到I/O操作,无非就是借助缓冲读入写出。

BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream())); 
  PrintWriter out=new PrintWriter(server.getOutputStream());


上面两句就是建立缓冲并把原始的字节流转变为Unicode可以操作,而原始的字节流来源于Socket的两个方法,getInputStream()和getOutputStream()方,分别用来得到输入和输出,那么现在有了基本的模型和基本的操作工具,我们可以做一个简单的Socket例程了.


[b]server类:[/b]

package com.practice.soket;

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 SoketServer {
public static void main(String[] args) throws IOException{

ServerSocket server=new ServerSocket(5678);
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());

while(true){
String str=in.readLine();
//System.out.println(str);
out.println("has received...." + str);
out.flush();
if(str.equals("end"))
break;
}

client.close();
}

}



[b]客户端:[/b]


package com.practice.soket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

public class ClientSoket{
static Socket server;

public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));

while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}

server.close();
}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值