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

java 基于TCP的Socket网络通信

2017-04-19 21:44 519 查看

client代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {

public static void main(String[] args) {
try {

Socket socket = new Socket("localhost", 8889);

OutputStream os = socket.getOutputStream();

PrintWriter pw = new PrintWriter(os);

pw.write("用户名:jack;密码:789");

pw.flush();

socket.shutdownOutput();

InputStream is = socket.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String info = null;

while ((info = br.readLine()) != null) {

System.out.println("Getting info from Server is:" + info);
}

socket.shutdownInput();

br.close();

is.close();

pw.close();

os.close();

socket.close();
} catch (IOException e) {
e.printStackTrace();
}

}

}

Server代码(分成两个类出来,处理成多线程)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8889);

Socket socket = null;

int count = 0;

System.out.println("**Server searching loading from ...***");

while (true) {

socket = serverSocket.accept();

ServerThread serverThread = new ServerThread(socket);

serverThread.setPriority(4);

serverThread.start();

count++;

System.out.println("Client count is:" + count);

InetAddress address = socket.getInetAddress();

System.out.println("当前客户端的IP:" + address);
}

} catch (IOException e) {

e.printStackTrace();
}
}

}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class ServerThread extends Thread {

Socket socket = null;

public ServerThread(Socket socket) {
this.socket = socket;
}

@Override
public void run() {

super.run();

InputStream is = null;

BufferedReader br = null;

OutputStream os = null;

PrintWriter pw = null;

try {

is = socket.getInputStream();

br = new BufferedReader(new InputStreamReader(is));

String info = null;

while ((info = br.readLine()) != null) {

System.out.println("Getting info from Client is:" + info);
}

socket.shutdownInput();

os = socket.getOutputStream();

pw = new PrintWriter(os);

pw.write("Welcome come to you !!");

pw.flush();

socket.shutdownOutput();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (pw != null)
pw.close();
if (os != null)
os.close();
if (br != null)
br.close();
if (is != null)
is.close();
if (socket != null)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: