您的位置:首页 > 理论基础 > 计算机网络

java网络编程(一)单线程网络编程

2015-01-30 10:08 351 查看
1 服务端实现的是通过系统输入后向客户端打印数据,如果打印的数据内容为bye则结束线程
服务端的代码如下:

package com.sun.net;

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

/**
* 类名: OneThreadSocketServer
* 包名: com.sun.net
* 作者: Administrator
* 时间: 2015年1月26日 上午9:17:38
* 描述:
*/
public class OneThreadSocketServer {
private int port = 10000;
private ServerSocket server;

public OneThreadSocketServer() throws Exception{
server = new ServerSocket(port);
}

public BufferedReader getReader(Socket socket) throws Exception{
return new BufferedReader(new InputStreamReader(System.in));
}
public PrintWriter getWriter(Socket socket)  throws Exception{
return new PrintWriter(socket.getOutputStream());
}
public void talk(){
try {
Socket socket = server.accept();
BufferedReader br = getReader(socket);
PrintWriter pw = getWriter(socket);

String msg = null;
while(true){
msg = br.readLine();
pw.println(msg);
pw.flush();

if(msg.trim().equals("bye"))break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
new OneThreadSocketServer().talk();
}
}


2 客户端: 客户端通过从输入流中读取数据,通过bufferedReader按行读取出来打印,如果读取出来的结果为bye则结束客户端
客户端代码为:

package com.sun.net;

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

/**
* 类名: OneThreadSocketClient
* 包名: com.sun.net
* 作者: Administrator
* 时间: 2015年1月26日 上午9:17:19
* 描述:
*/
public class OneThreadSocketClient {
private String serverIp;
private int port;

private Socket socket;

public OneThreadSocketClient(){
serverIp = "192.168.1.103";
port = 10000;
}

public BufferedReader getReader(Socket socket) throws Exception{
return new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
public void speak(){
try {
socket = new Socket(serverIp,port);
BufferedReader br = getReader(socket);

String msg = null;
while(true){
msg = br.readLine();

System.err.println(msg);
if(msg.trim().equals("bye"))break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new OneThreadSocketClient().speak();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: