package org.tiantian.message.server;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private int port;
public Server(int listenPort) {
this.port = listenPort;
}
public void handleConnection(Socket connectionToHandle) {
new Thread(new ConnectionHandler(connectionToHandle)).start();
}
public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(port, 100);
Socket incomingConnection = null;
while (true) {
incomingConnection = server.accept();
handleConnection(incomingConnection);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("Server start.");
Server s= new Server(25000);
s.acceptConnections();
}
}
package org.tiantian.message.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ConnectionHandler implements Runnable {
protected Socket toHandle;
public ConnectionHandler(Socket s) {
this.toHandle = s;
try {
PrintWriter streamWriter = new PrintWriter(toHandle
.getOutputStream());
BufferedReader streamReader = new BufferedReader(
new InputStreamReader(toHandle.getInputStream()));
streamWriter.println("OK from server.");
System.out.println(streamReader.readLine());
streamWriter.close();
streamReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
}
}
package org.tiantian.message.client;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
protected BufferedReader socketReader;
protected PrintWriter socketWriter;
protected String hostIp;
protected int hostPort;
public Client(String hostIp, int hostPort) {
super();
this.hostIp = hostIp;
this.hostPort = hostPort;
}
public void setUpConnection() {
try {
Socket client = new Socket(hostIp, hostPort);
socketReader = new BufferedReader(new InputStreamReader(client
.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream());
} catch (UnknownHostException e) {
System.out
.println("Error1 setting up socket connection: unknown host at "
+ hostIp + ":" + hostPort);
} catch (IOException e) {
System.out.println("Error2 setting up socket connection: " + e);
}
}
public void tearDownConnection() {
try {
socketWriter.close();
socketReader.close();
} catch (IOException e) {
System.out.println("Error tearing down socket connection: " + e);
}
}
public void talk() {
StringBuffer sb = new StringBuffer();
try {
socketWriter.println("Hi,I'm client.");
socketWriter.flush();
String line = null;
while ((line = socketReader.readLine()) != null)
sb.append(line + "\n");
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client c = new Client("127.0.0.1", 25000);
c.setUpConnection();
c.talk();
c.tearDownConnection();
}
}
作业慢慢写~今天就到这~
分享到:
相关推荐
java版本调用HP-Socket服务端代码,包含jna包及5.0.2版本的HP-Socket的dll文件,采用的是非常新的HP-Socket版本,demo是整套java工程,导入eclipse修改HpSocket.java文件中的服务器的IP和端口就可以测试,里面还包含...
"Java Socket学习---单线程阻塞"这个主题主要探讨了如何使用Java的Socket类进行单线程的阻塞式通信,这种模式通常用于简单的客户端-服务器应用。在这个场景中,服务器端通过一个线程处理一个客户端的请求,当请求被...
"直接添加到lib使用"意味着开发者需要将`libsocket-can-java.jar`添加到他们的项目库中,这样Java虚拟机(JVM)就能在运行时找到并加载这个库。同时,`libjni_socketcan.so`是一个动态链接库文件,它是Java Native ...
基于Java--Socket-网络编程.doc
Java网络套接字编程是Java编程领域中的一个重要组成部分,它涉及到如何通过网络在不同设备间进行数据通信。本文将深入探讨Java的Socket编程,包括基础知识、API使用、常见问题及解决策略。 一、Java Socket概述 ...
在这个特定的案例中,我们将讨论如何使用Java作为客户端,通过Socket连接到使用Node.js构建的服务器进行通信。Socket编程是一种基础的网络通信机制,允许两个应用程序通过网络交换数据。 首先,让我们深入了解一下...
在本主题中,我们将深入探讨Java中的TCP Socket编程,包括基本概念、工作原理以及如何通过`TestClient.java`和`TestServer.java`这两个示例文件进行实际操作。 TCP(Transmission Control Protocol)是一种面向连接...
本教程主要探讨的是如何在Java中使用Socket实现多线程阻塞式通信,这通常涉及到服务器端(EchoServer)和客户端(EchoClient)的设计。在本文中,我们将详细解析`EchoServer.java`、`SocketUtils.java`和`EchoClient...
### Java编程中的Socket与网络编程详解 #### 一、Socket编程概述 Socket编程是Java网络编程的核心技术之一,主要用于实现不同计算机之间的通信。通过Socket,应用程序可以在网络上发送和接收数据,实现分布式系统...
"socket-java-demo-good.rar_Follow_ Follow_easy socket"这个标题暗示我们这里有一个关于Java Socket编程的示例项目,它易于理解和实现。描述中的“easy to follow”进一步强调了这个demo的易用性,适合初学者或者...
基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java ...
在这个场景中,"client-server"指的是Java编程环境下实现的客户端Socket连接到服务端Socket的过程。源码和工具标签暗示我们将讨论具体的代码示例和可能使用的辅助工具。 在Java中,Socket编程涉及`java.net.Socket`...
本资料“JAVA-Socket-Programming.rar”包含了一套完整的课件和实例,非常适合Java编程初学者学习。Socket编程允许应用程序通过Internet协议(如TCP/IP)进行通信,创建客户端和服务器端的连接,实现数据的双向传输...
在描述中的"socket---网上广播"可能指的是使用多播Socket进行网络通信。 在实现网上广播时,服务器不仅需要监听普通TCP连接,还需要加入一个多播组,通过`MulticastSocket`发送数据到多播组。而客户端则需要创建`...
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的...HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。
目前,Java社区有多个针对Socket.IO的实现,如`java-socket.io-client`和`socket.io-client-java`等。这些库通常会提供API,让你能够轻松地与Socket.IO服务器进行交互。 1. **java-socket.io-client**:这是一个...
通过深入学习和实践这个Java的Socket编程课件,开发者将能够熟练掌握如何在Java中创建可靠的网络通信,为开发高性能的网络应用程序奠定坚实基础。无论是初学者还是经验丰富的开发者,都应该对Socket编程有深入的理解...
Java TCP/IP Socket编程是网络通信领域中的核心技术,尤其在Java编程中,Socket是实现客户端与服务器之间通信的基础。本资料“Java TCP-IP Socket编程-卡尔弗特.pdf”旨在深入探讨如何利用Java语言进行TCP/IP套接字...
Java Socket是Java编程语言中实现网络通信的基础组件,它提供了应用程序与网络协议的接口,使得开发者可以构建基于TCP(传输控制协议)或UDP(用户数据报协议)的应用程序。本教程将深入探讨Java Socket编程的核心...