java系列讲座一:tcp方式socket通信案例讲解

     2022-03-20     391

关键词:

开发网络通信软件,如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(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.51cto.com/course/6946.html 

java系列讲座二:socket网络通信实现聊天软件项目讲解(udp)

    上一篇我们讲了通过TCP方式实现网络通信软件开发的原理,思路及实现,今天跟大家谈谈Socket通信中UDP方式通信的软件开发步骤及主要代码讲解,UDP实现方式实现的通信软件特点是不分客户端与服务器端,一个... 查看详情

socket通信机制(学习总结)

...的端点,由一个地址和一个端口来标识。2、两种通信方式:有连接方式TCP、无连接方式UDP(用户数据报协议)。二、有连接方式TCP1、通信双方在开始时必须进行一次连接过程(三次握手),建立一条... 查看详情

java网络编程-tcp通信(代码片段)

...、可靠的传输数据的协议传输前,采用“三次握手”方式,点对点通信,是可靠的在连接中可进行大数据量的传输TCP通信模式:在java中只要是使用java.net.Socket类实现通信,底层即是使用了TCP协议编写客户端代码Socke... 查看详情

java:实现nio方式实现tcp通信

1.声明当前内容主要为复习使用Nio方式实现tcp通信,实现tcp之间的信号传递和解析2.Server端/****@authorhy*@createTime2022-02-1209:48:24*@description当前内容为使用Nio方式操作socket进行通信操作**/publicclassNioServerSocketTest publicstatic 查看详情

socket与tcp,udp有啥关系?

...信的API名称。TCP/UDP是OSI模型的第四层中定义的两种通信方式。也就是说,SOCKET是API,而TCP/UPD是通信协议,两种根本不同的东西。语言表达的例子:用SOCKET实现TCP(或者UDP)通信。(相反,TCP或者UDP通信也可以不使用SOCKET实现)参考技... 查看详情

tcp案例代码(代码片段)

...录TCP网络编程的案例代码普通服务端/客户端代码多线程方式代码TCP网络编程的案例代码描述客户端与服务端的通信普通服务端/客户端代码服务端importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;/***服务端*/publicclassServerSocketTestp... 查看详情

java应用使用网络编程进行socket通信

...什么是socket通信Socket通信是网络编程中最常见的一种通信方式,它基于TCP/IP协议栈,通过网络建立两台计算机之间的连接,并在连接之间传输数据。Socket通信可以在不同的计算机上运行不同的程序之间进行数据交换,它是构建网... 查看详情

go语言快速入门ipc之socket9

...但是也具局限性,当通信双方在不同的机器上的时候通信方式更多采用Socket方式。在这篇文章中我们将会继续探索如何使用go所提供的net包等实现TCP和UDP方式的Socket通信。传输层协议OSI模型OSI七层模型,简单来说,下三层主要负... 查看详情

socket编程通过socket实现tcp编程

...1.TCP协议是面向对象连接、可靠的、有序的,以字节流的方式发送数据。2.基于TCP协议实现网络通信的类:客户端----Socket类服务器端----ServerSocket类一、通信过程(Socket通信模型)Socket通信模型用下图所示: 1、在服务端建立... 查看详情

java网络多线程专题(代码片段)

...UDP:InetAddress类:相关方法:代码展示:Socket:TCP网络通信编程应用案例(使用字节流)服务端代码客户端代码:TCP网络通信编程应用案例2服务端代码:客户端代码 查看详情

socket的应用案例

...定位符,通过URL可以直接读取和写入网络上的数据。3、Socket:使用TCP协议实现网络通信的Socket相关类4、Datagram:使用UDP协议,将数据保存到数据报中,通过网络进行通讯。InetAddress的使用 publicstaticvoidmain(String[]args)thro 查看详情

tcp通信

1、TCP通信过程socket在Tcp/IP分层的哪里?socket是应用层与Tcp/IP协议族通信中间软件抽象层,是一组接口。在设计模式中,其实就是一个门面模式,他把复杂的协议族隐藏在接口后面,对用户来说,一组简单的接口就是全部,让socke... 查看详情

java网络编程之tcp的socket通信

1、客户端MyClient.java1importjava.io.*;2importjava.net.*;34publicclassMyClient5{6publicstaticvoidmain(String[]args)throwsException7{8Sockets=newSocket("192.168.1.1",30000);9//客户端启动ClientThread线程不断读取来自服务器的 查看详情

java实现tcp通信

1.概述通过ServerSocket与Socket实现的TCP的通信,这个例子配合了swing使用,其实作者之前发过一篇ServerSocker与Socket的通信,在这里,这边文章就是在这个例子上修改而成的.其实原理很简单的,就是一个服务端一个客户端,服务端这边创建好S... 查看详情

计算机网络——socket实验2(代码片段)

...二、实验内容三、实验环境四、实验步骤与过程1套接字Socket1.1什么是Socket1.2Socket的TCP通信1.3Socket的UDP通信2Socket类与ServerSocket类编写一个C/S程序附录Server.javaClient.javaChatRoom.java一、实验目的掌握Socket的TCP通信、Socket的UDP通信二、... 查看详情

基于tcp的socket通信(代码片段)

#socket#socekt是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个门面模式,它#把复杂的tcp/ip协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,... 查看详情

什么叫套接字。socket?

...数据报套接字提供了一种不可靠的、非连接的数据包通信方式。所以数据报套接字使用UDP协议,当然,winsock2版本还支持其他协议。 查看详情

java网络编程之tcp网络编程

一、基于Socket的TCP编程Java语言的基于套接字编程分为服务端编程和客户端编程,其通信模型如图所示: 二、客户端Socket的工作过程(四个基本步骤)1、创建Socket根据指定服务端的IP地址或端口号构造Socket类对象。若服务器端响... 查看详情