以下介绍:简单的socket发送消息,服务的Server 相互 客户端Client,进行简单的传递消息:


服务端代码:

package test;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
/**
* 服务器连接的Socket
*/
public static ServerSocket cServerSocket; /**
* 连接
*/
public static Socket cSocket; /**
* 端口
*/
public static final int PORT = 8888; public static void main(String[] args) { DataInputStream dis = null;
DataOutputStream dos = null; try {
cServerSocket = new ServerSocket(PORT);
while (true) {
System.out.println("正在等待客户连接...");
// 这里处于等待状态,如果没有客户端连接,程序不会向下执行
cSocket = cServerSocket.accept();
dis = new DataInputStream(cSocket.getInputStream());
dos = new DataOutputStream(cSocket.getOutputStream());
// 读取数据
String clientStr = dis.readUTF(); String msg = "已收到信息:"+clientStr; // 写出数据
dos.writeUTF(msg); System.out.println(msg); System.out.println("---客户端信息打印,IP:"
+ cSocket.getInetAddress()
+ " Prot:" + cSocket.getPort());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (dis != null) {
dis.close();
}
if (dos != null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
} }
}
}

客户端代码:

private Socket cSocket;
// 服务器server/IP地址(当前PC的IP地址)
private final String ADDRESS = "192.168.8.2";
// 服务器端口
private final int PORT = 8888;
cThread = new Thread() {
@Override
public void run() {
super.run();
DataInputStream dis = null;
DataOutputStream dos = null;
try {
// 阻塞函数,正常连接后才会向下继续执行
cSocket = new Socket(ADDRESS, PORT);
dis = new DataInputStream(cSocket.getInputStream());
dos = new DataOutputStream(cSocket.getOutputStream()); // 向服务器写数据
dos.writeUTF("hello socket..."); // 读取服务器发来的数据
cContent += dis.readUTF(); } catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (dis != null) {
dis.close();
}
if (dos != null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
};
cThread.start();

运行效果:


谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,

刘德利CSDN博客, http://blog.csdn.net/u011967006

JavaSocket简单通信的更多相关文章

  1. Eclipse搭建服务器,实现与Android的简单通信

    ---恢复内容开始--- 目标:实现客户端(Android App)与服务器(PC)的简单通信 相关准备:eclipse_mars.tomcat8.Android Studio 实现: 1.java环 ...

  2. Spring+Netty4实现的简单通信框架

    参考:http://cpjsjxy.iteye.com/blog/1587601 Spring+Netty4实现的简单通信框架,支持Socket.HTTP.WebSocket_Text.WebSock ...

  3. 【转】Qt Socket简单通信

    最近要用到Qt的Socket部分,网上关于这部分的资料都比较复杂,我在这总结一下,把Socket的主要部分提取出来,实现TCP和UDP的简单通信. 1.UDP通信 UDP没有特定的server端和cl ...

  4. C# 简单通信(实现文件传输)

    https://blog.csdn.net/Sayesan/article/details/82185772 之前写过一个简单通信传输,不过只有聊天的功能,现在实现了文件传输的功能,借鉴于网上一篇博客 ...

  5. 基于TCP 协议的socket 简单通信

    DNS 服务器:域名解析 socket 套接字 : ​ socket 是处于应用层与传输层之间的抽象层,也是一组操作起来非常简单的接口(接受数据),此接口接受数据之后,交由操作系统 为什么存在 soc ...

  6. Python网络编程-Socket简单通信(及python实现远程文件发送)

    学习python中使用python进行网络编程,编写简单的客户端和服务器端进行通信,大部分内容来源于网络教程,这里进行总结供以后查阅. 先介绍下TCP的三次握手: 1,简单的发送消息: 服务器端: i ...

  7. 基于STM32F1与NRF24L01模块的SPI简单通信

    一.前言 1.简介: 本文是基于STM32F1,将数据发送至NRF模块的寄存器,并将数据重新读取,通过串口发送出来的简单SPI单通信. 2.SPI简介: 调过STM8的都已经对SPI有所了解,调法都一 ...

  8. TCP和UDP并实现socket的简单通信

    http://www.cnblogs.com/IPrograming/archive/2012/10/15/CSharp_Socket_4.html http://www.cnblogs.com/do ...

  9. C#使用 UdpClient 类进行简单通信的例子

    UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两 ...

随机推荐

  1. Containerpilot 配置文件模板

    { "consul": "{{ .CONSUL }}:8500", "logging": { "level": &quo ...

  2. Nexus 使用配置

    Nexus使用的一些基本设置 1.更改中央仓库地址为私服地址 既然我们配置了私服,那么相应的,我们的项目就应该使用Nexus的地址(Public Repository)来下载jar包 1.1.基于PO ...

  3. 转)Ubuntu14安装wireshark进行抓包

    转自:http://jingyan.baidu.com/article/c74d60009d992f0f6a595de6.html 背景: ubuntu14.04/64位 为了抓包和分析包 安装过程: ...

  4. c++继承赋值兼容

    其实还是不明白,红色部分,,,求解 #include <iostream>#include <time.h>using namespace std; class B0{publ ...

  5. [leetcode]158. Read N Characters Given Read4 II - Call multiple times 用Read4读取N个字符2 - 调用多次

    The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ...

  6. nginx 反向代理 502 Bad Gateway

    查看nginx的error.log日志文件发现如下信息: upstream sent too big header while reading response header from upstrea ...

  7. AssemblyVersion,AssemblyFileVersion解释以及获取

    简而言之,AssemblyVersion: 是程序集的版本,.NET的CLR用,用于标识出该dll的版本信息,用于定义强名称的版本号: AssemblyFileVersion: 为编译器生成的文件加入 ...

  8. 集合List与DataTable互转

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

  9. meterpreter 如何留后门,使攻击持久化

    安装后门方法一:meterpreter >run persistence -X -i 5 -p 443 -r 192.168.0.108 Persistent agent script is 6 ...

  10. 如何配置Notepad++的C_C++语言开发环境

    相信很多人用notepad++,但把其配置成为C/C++还是需要小折腾一下的.本人在网上找了很长时间,也没有一个统一的答案,而且很多人说的方法根本不管用,而且也不够通用,所以还是自己摸索了一下,分享给 ...