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

JAVA系列课程讲座一:使用Socket通信实现网络通信程序(TCP方式)

2017-07-12 11:26 896 查看
开发网络通信软件,如QQ,阿里旺旺等即时通讯软件时,Socket通信是必备的基础知识,今天跟大家谈谈Socket通信中TCP方式通信的软件开发步骤及主要代码讲解:

第一步:开发服务器端程序Server.java,源代码如下:

package T16;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

//服务器端程序

public static void main(String[] args) {

/**

 * 1.创建服务器端ServerSocket,指定端口,有多块网卡时可以指定IP

 *  参数1:端口

 *  参数2:等待排队的客户端数量

 */

try {

//1.创建服务器端ServerSocket

ServerSocket serverSocket = new ServerSocket(8888,5);

System.out.println("服务器启动成功:"+serverSocket.toString());

//2.等待客户连接

Socket clientSocket = serverSocket.accept();

System.out.println("有客户来,请接客...........");

//3.绑定输入流

InputStream is = clientSocket.getInputStream();

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(
b583
isr);

//4.绑定输出流

OutputStream os = clientSocket.getOutputStream();

PrintStream ps = new PrintStream(os);

//5.接收数据

System.out.println("服务器端接收:"+br.readLine());

//6.发送数据

String str = "欢迎连接到本服务器.";

ps.println(str);

//7.关闭socket通信

clientSocket.close();

serverSocket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

第二步:开发客户端程序Client.java,源代码如下:

package T16;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.Socket;

import java.net.UnknownHostException;

import java.util.Calendar;

public class Client {

/**

 * 客户端程序:

 *  1.指定服务器的IP地址;

 *  2.指定服务器的端口;

 * 

 * */

public static void main(String[] args) {

try {

//1.创建客户端Socket;

Socket socket = new Socket("127.0.0.1",8888);

System.out.println("连接服务器成功....");

//2.绑定输入输出流

OutputStream os = socket.getOutputStream();

PrintStream ps = new PrintStream(os);

InputStream is = socket.getInputStream();

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

//3.发送数据

ps.println("我是客户端,请求连接...");

//4.接收数据

System.out.println("客户端接收服务器数据:"+br.readLine());

//5.关闭Socket

socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

第三步:先运行服务器端程序,再运行客户端程序,可以看到网络传输后的打印结果

说明:该程序是一个比较简单的入门级代码,整个程序只能进行一次网络通信,如果需要做成一个可以不断的通信软件的软件,还要用到多线程,IO流操作,数据库操作等诸多技术综合应用,如果大家有兴趣可以看看我的java从入门到精通+QQ即时通讯软件项目实训的教学视频​,链接地址:http://edu.csdn.net/course/detail/2981
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: