最近感觉网络编程方面知道的比较少,今天做了一个小例子,就是客服端与服务器端的连接,使用了多线程,具体的代码如下:
服务器端:
package com.bmldyq.sockey.server;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String[] args) {
new SocketServer().star();
}
public void star() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
Thread th = new Thread(new ServerHandler(socket));
th.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public class ServerHandler extends Thread {
private Socket socket;
public ServerHandler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
// 用于向客户端发送数据的输出流
try {
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
// // 接受客服端发过来的请求
DataInputStream dis = new DataInputStream(socket.getInputStream());
String msg=dis.readUTF();
System.out.println("客服端:"+msg+" 已连接!");
// 向客服端发送信息
dos.writeUTF(msg+"服务器端正常连接");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客服端:
package com.bmldyq.sockey.client;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
new Client().connectionServer();
}
private void connectionServer(){
Socket socket = null;
System.out.println("请输入用户名:");
Scanner sc = new Scanner(System.in);
String uname = sc.next();
System.out.println("请输入密码:");
String upwd = sc.next();
if (!uname.equals("") && !upwd.equals("")) {
System.out.println("登陆成功,正在进行服务器连接...");
try {
socket = new Socket("localhost", 8888);
DataOutputStream dos = new DataOutputStream(socket
.getOutputStream());
DataInputStream dis = new DataInputStream(socket
.getInputStream());
// 向服务器段写入请求
dos.writeUTF(uname);
System.out.println(dis.readUTF());
connectionServer();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("登陆失败,系统将退出!");
System.exit(0);
}
}
}
就是客服端输入用户信息进入服务器端的连接并且返回连接信息,比较简单
分享到:
相关推荐
本文将深入探讨“Socket简单通信winform”的实现,以及如何实现文件发送和屏幕闪烁功能。 首先,Socket是基于TCP/IP协议的网络通信接口,它允许应用程序通过网络进行数据交换。在Winform应用中,我们可以使用C#语言...
本主题将深入探讨如何实现基于Socket的简单通信协议,主要包括以下几个方面: 一、Socket基本概念 Socket,通常称为套接字,是网络编程中的一个抽象概念,用于在网络上的两个进程间建立通信连接。在TCP/IP协议栈中...
在这个"Socket简单通信程序Server Client"中,我们将会深入理解Socket的工作原理及其在TCP/IP协议栈中的角色。 首先,Socket是网络通信的接口,它提供了进程间通信(IPC)的能力,特别是在分布式系统中,通过...
在Android平台上,Socket通信是一种常见的网络编程方式,用于设备间...以上就是关于Android中Socket简单通信的基本介绍,实际开发中,根据具体需求,还可以结合多线程、线程池、心跳机制等技术进行更复杂的设计和优化。
标题“QT-tcpsocket简单通信-字符串通信”所涉及的核心知识点是Qt中的QTcpSocket类,它允许我们创建TCP客户端和服务器来交换数据。TCP是一种面向连接的、可靠的传输协议,保证了数据的顺序和完整性。在Qt中,我们...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库以及Socket API来构建一个简单的C/S架构通信程序。MFC是微软为Visual C++提供的一个类库,它封装了许多Windows API,使得Windows应用程序的...
本教程将通过一个简单的C语言实现的Socket通信实例,讲解如何在VC++6.0环境下进行Socket编程。这个实例包括了服务端和服务端两部分,分别对应压缩包中的"服务端.cpp"和"客户端.cpp"源代码文件。 首先,我们要理解...
在本示例中,我们看到的是一个基于VS2013环境、使用C++编写的简单Socket通信程序,包含服务端(socketserver)和客户端(socketclient)。让我们深入探讨一下这个主题。 首先,Socket接口是操作系统提供的API,它...
本文将深入探讨MFC如何实现基于无连接Socket的简单通信,特别是涉及UDP(User Datagram Protocol)协议的应用。 首先,无连接Socket通信指的是发送方与接收方之间不需要建立或维护连接状态的通信方式。这种通信模型...
在这个简单的C语言Socket通信实例中,我们将探讨如何创建一个服务器端来接收和响应客户端的请求。 首先,服务器端的核心工作流程如下: 1. **创建Socket**: 使用`socket()`函数创建一个Socket描述符。在这个例子...
Java Socket 是一种网络通信协议,它是Java编程语言中实现客户端-服务器模型的基础。Socket 提供了低级别的、面向连接的、双向通信的网络接口,允许应用程序通过网络进行数据传输。在本示例中,我们将深入探讨Java ...
在本文中,我们将深入探讨"简单的socket通信",包括服务端和客户端的基本概念、实现方式以及如何在Visual Studio 2015环境下进行开发。 首先,我们需要了解什么是Socket。Socket在计算机网络中是一个接口,它为应用...
在Windows环境下进行网络编程时,Socket通信是一种常用的技术。Socket接口是操作系统提供的网络通信API,允许应用程序通过TCP/IP协议栈与其他计算机进行数据交换。本文将详细介绍Windows下的Socket通信代码,包括...
本文将详细介绍如何使用`io.socket`进行Socket通信的简单封装,以便在迭代开发中提高效率和代码质量。 首先,我们需要在项目中引入`io.socket`库。通常通过在`build.gradle`文件中添加依赖来实现: ```groovy ...
Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。 先上个图: 这里以一个APP作为服务器跟客户端为示例 1、添加网络访问权限 2、写...
Mina和Socket是两种常见的网络通信框架和技术,它们在Java编程环境中被广泛使用。本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic ...
以下是一个简单的C++ TCP客户端和服务器示例,展示了如何使用Socket库: ```cpp // 客户端 #include #include <sys/socket.h> #include #include int main() { int sock = socket(AF_INET, SOCK_STREAM, 0); ...
- **Client端流程**:客户端则相对简单,通过`socket()`创建Socket,`connect()`与服务器建立连接,`recv()`接收服务器数据,然后`send()`发送数据,最后`close()`关闭连接。 4. **操作系统的角色**: - 操作系统...
总结Silverlight中应用Socket的几点特殊之处 1.所有的操作都必须的异步的,包括连接,发送和接收消息 2.Silverlight只能做客户端,不能做服务器(虽然这句看起来说的有点多余,不过确实有朋友想这么做呢) 3....