`

Java.net的ServerSocket与Socket

    博客分类:
  • Java
 
阅读更多

 

ServerSocket类

ServerSocket myListener = new ServerSocket(600);

提供监听服务的端口是600,不同服务之间通过端口来区别。为了随时监听可能的Client端的请求,执行如

 

下语句:

Socket linkSockt = myListener.accept();

这个方法执行将使得Server端处于等待状态,直到接收一个来自Client端的请求,并返回一个与Client通信

 

的Socket对象。Server端与Client端连接后,就实现了相互读写数据,结束通信执行:

myListener.close();

 

Socket类

Client需从Server获取服务时,应创建一个Socket对象:

Socket mySocket = new Socket(host,port);

连通后,利用Socket类方法getOutputStream()获取(write)输出流,和getInputStream()获取(read)输

 

入流。结束通信同样是

mySocket.close();

 

ServerSocket一般仅用于设置端口号和监听,真正进行通信的是Server端的Socket与Client端的Socket,在ServerSocket进行accept后,就将主动权转让给Server端的Socket。



Server端

package com.serversocket.test;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
	private ServerSocket ss;
	
	public static final int port = 8962;
	
	public MyServer(){
		try{
			ss = new ServerSocket(port);
		}
		catch(IOException e){
			e.printStackTrace();
		}
	}
	
	public void setConnection() throws IOException{
		Socket s;
		OutputStream os;
		try {
			s = ss.accept();
			os = s.getOutputStream();
			os.write("hello".getBytes());
			os.close();
			s.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static void main(String[] args) throws IOException{
		MyServer ms = new MyServer();
		ms.setConnection();
	}
	
}




Client端

package com.serversocket.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
	public static final String IP = "127.0.0.1";
	
	public static int port = 8962;
	
	private Socket s;
	
	public MyClient(){
		try {
			s = new Socket(IP,port);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void setConnection() throws IOException{
		InputStream is;
		try {
			is = s.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			System.out.println(br.readLine());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) throws IOException{
		MyClient mc = new MyClient();
		mc.setConnection();
	}
}


来自网络资料

分享到:
评论

相关推荐

    java.net包socket通信

    在Java中,`java.net.Socket`类代表客户端Socket,用于建立与服务器的连接,并通过该连接发送和接收数据。而`java.net.ServerSocket`类则用于服务端,它监听特定端口的连接请求,一旦有客户端请求连接,就会创建一个...

    java和.net的socket通信

    在Java中,Socket类位于`java.net`包下,而在.NET中,Socket类位于`System.Net.Sockets`命名空间内。 2. **TCP连接**:Java和.NET的Socket通信通常基于TCP(传输控制协议),这是一种面向连接的、可靠的传输协议,...

    通过java socket实现屏幕网络监控

    在Java中,`java.net.Socket` 和 `java.net.ServerSocket` 是两个主要的类,分别代表客户端和服务器端的Socket。客户端Socket用于连接到服务器,而服务器端Socket则监听特定端口,等待客户端的连接请求。 在屏幕...

    java socketServer socket

    Java 的 `java.net.Socket` 类提供了创建和管理套接字的功能,允许我们建立连接到特定IP地址和端口的TCP连接。在服务器端,我们需要创建一个 `ServerSocket` 对象,监听特定端口上的连接请求。一旦有客户端连接,`...

    有关java线程循环和serversocket和socket的程序借鉴.pdf

    通过实验,我们掌握了网络编程的基本概念,如客户机、服务器、协议、端口等,并且了解了 Java.net 包中常用的网络编程工具类的功能和使用。 一、多线程编程 多线程编程是指在一个程序中使用多个线程来实现并发执行...

    android与.net通过socket通讯

    - `java.net.Socket` 类是Android中的主要Socket实现,用于建立TCP连接。 - `ServerSocket` 类在服务器端使用,用于监听客户端的连接请求。 2. **.NET Socket通信基础** - .NET框架同样提供了Socket类,位于`...

    .net java socket

    在Java端,Socket编程同样位于`java.net`包下,Java的Socket类负责处理客户端与服务器之间的连接。服务器端需要创建一个ServerSocket监听特定端口,等待客户端连接。当接收到连接请求时,ServerSocket的`accept`方法...

    java socket长连接客户端服务端(标准实例)

    在Java中,通过`java.net.Socket`类来表示客户端,`java.net.ServerSocket`类来表示服务器端。本案例实现了基于TCP协议的Socket长连接,即客户端和服务端建立连接后,保持连接状态,进行多次数据交互而无需频繁建立...

    实现nodejs与java的socket相互通信

    而在Java中,我们可以使用`java.net.Socket`和`java.net.ServerSocket`类来实现相同的功能。 ### Node.js 实现Socket服务器 在Node.js中,创建一个简单的Socket服务器的步骤如下: 1. 引入`net`模块: ```...

    java socket 视频流转发socket

    在Java中,`java.net.ServerSocket`类是服务器端使用的,它监听特定端口上的连接请求。当一个客户端(使用Socket)尝试连接到该端口时,ServerSocket会创建一个新的Socket实例来处理这个连接。这被称为“三次握手”...

    java socket连接池 实现

    在Java中,`java.net.Socket`类和`java.net.ServerSocket`类提供了Socket编程的基础API。`ServerSocket`用于监听客户端的连接请求,而`Socket`则用于建立客户端和服务器端的连接,进行数据传输。 然而,当并发请求...

    Android 中出现java.net.BindException: bind failed: EADDRINUSE 问题解决办法

    在Android开发过程中,网络通信是应用的重要组成部分,而使用UDP(User Datagram Protocol)进行数据传输时,可能会遇到`java.net.BindException: bind failed: EADDRINUSE`的问题。这个异常通常意味着应用程序尝试...

    Java Socket发送和接收的例子

    Socket在Java中被封装在`java.net.Socket`和`java.net.ServerSocket`类中,分别用于客户端和服务器端的通信。 首先,我们从服务器端开始。在Java中,创建一个服务器Socket实例,通常需要指定一个端口号,这个端口号...

    JSocket_Server.rar_jSocket server_java server socket_java socket

    `JSocket` 在这里可能是指一个特定的Java Socket库或者是一个项目名称,但通常在Java中,我们直接使用内置的`java.net.Socket` 和`java.net.ServerSocket` 类进行网络编程。 `jsocket_java_server` 标签可能指的是...

    TCP-socket.zip_java_java Tcp _java socket _socket_socket多线程

    在Java中,`java.net.Socket`类和`java.net.ServerSocket`类是进行TCP通信的主要接口。 1. **Java Socket**:Java的Socket类代表了TCP连接的一端,它可以用于发送和接收数据。`Socket`类提供了一系列方法来获取和...

    Java TCP/IP Socket编程

    在Java中,Socket编程主要涉及两个类:`java.net.Socket`(客户端)和`java.net.ServerSocket`(服务器端)。以下是一些核心概念和步骤: 1. **创建ServerSocket**:服务器首先创建一个`ServerSocket`对象,并指定...

    Android中socket通信简单实现

    Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。 先上个图: ...import java.net.ServerSocket; import java.net.So

    JAVA_Socket_TCP(客户端服务器)

    在Java中,`java.net.ServerSocket`类用于创建服务器端的Socket,监听特定端口上的连接请求。以下是一个简单的服务器示例: ```java import java.net.ServerSocket; import java.net.Socket; public class TCP...

    Java源码:Socket编程.rar_java socket _java编程_socket java_socket编程 jav

    import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(8080); while (true) { ...

    java socket client-server

    在Java中,Socket编程涉及`java.net.Socket`类(客户端)和`java.net.ServerSocket`类(服务器端)。首先,服务器端需要创建一个`ServerSocket`实例,指定一个端口号,监听来自客户端的连接请求。例如: ```java ...

Global site tag (gtag.js) - Google Analytics