- 浏览: 455682 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
飞天奔月:
我来个简单点的代码 使用 LinkedHashSetpubli ...
ArrayList去重 -
飞天奔月:
public static <T> List< ...
ArrayList去重 -
aaron7524:
事务隔离级别 -
月陨殇:
wlh269 写道rswh110 写道lz内容写的不错,就是略 ...
事务隔离级别 -
lnx1824:
我的更奇怪,在本地静态的可以,放jetty里的页面后就不然,都 ...
JS得到上传图片尺寸
客户端:
服务端:负责接收多个客户端的连接 ,然后交给多线程去处理
多线程程序:
package com.wlh.test; import java.io.*; import java.net.*; public class talkclient { public static void main(String args[]) { try { Socket socket = new Socket("192.168.13.123",9999); BufferedReader sin = new BufferedReader(new InputStreamReader(System.in)); PrintWriter os = new PrintWriter(socket.getOutputStream()); BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream())); String readline; while (!"bye".equals(readline=sin.readLine())) { //==============写服务端==================// os.println(readline); os.flush(); //==============读服务端==================// System.out.println("服务端反馈:"+is.readLine()); } os.close(); is.close(); socket.close(); }catch(Exception e) { System.out.println("Error" + e); } } }
服务端:负责接收多个客户端的连接 ,然后交给多线程去处理
package com.wlh.test; import java.io.*; import java.net.*; //引入了无关的类 import java.applet.Applet; public class talkserver { static int clientnum = 0; // 静态成员变量,记录当前客户的个数 public static void main(String args[]) { ServerSocket server = null; try { server = new ServerSocket(9999); } catch (IOException e1) { e1.printStackTrace(); } while(true){ try { Socket socket = server.accept(); System.out.println("一个客户端连上来了...."); ServerThread thread=new ServerThread(socket); //thread.start(); } catch (IOException e) { e.printStackTrace(); } } } }
多线程程序:
package com.wlh.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /** * 服务器端逻辑线程 */ public class ServerThread extends Thread { Socket socket; BufferedReader br=null; PrintWriter os=null; public ServerThread(Socket socket) { this.socket = socket; start(); //启动线程 } public void run() { BufferedReader is=null; PrintWriter os=null; try { boolean flag=true; //ServerSocket server = null; //Socket socket = null; //ServerSocket server = new ServerSocket(9999); System.out.println("server listen on port 9999..."); //socket = server.accept(); is = new BufferedReader(new InputStreamReader(socket.getInputStream())); os = new PrintWriter(socket.getOutputStream()); while(flag){ System.out.println("-------------------"); //多线程 //new ServerThread(socket, clientnum).start(); //标准输入端读取一行 BufferedReader sin = new BufferedReader(new InputStreamReader(System.in)); String str; String reply; while(!"".equals(str=is.readLine())){ System.out.println(".....start..........."); System.out.println(str); //每写一行,就等着从客户端读进一行, //====向客户端反馈读到的信息=====// os.println("服务端已经收到:"+str); os.flush(); //=======从控制台读取信息==========// //reply=sin.readLine(); //os.println("服务端 说:"+reply); //写到客户端 //os.flush(); System.out.println("......end........."); } System.out.println("out of while..."); //String line=sin.readLine(); os.println("server AAAAAAAAAAAAA"); //写到客户端 os.flush(); } //****流如果关闭,socket也将会关闭,所以如果想在一个socket连接之内通讯*****//, //***则应该在while之外关闭socket****// //server.close(); } catch (Exception e) { System.out.println("Error" + e); }finally{ try { is.close(); os.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 关闭流和连接 */ private void close() { try { //关闭流和连接 os.close(); br.close(); socket.close(); } catch (Exception e) { } } }
发表评论
-
java开发实战视频详解
2017-07-02 08:09 510java开发实战视频详解 链接: http://pan.bai ... -
ArrayList去重
2013-04-25 10:18 3294public static List removeDuplic ... -
java ArrayList 自定义排序
2013-04-22 11:39 2159import java.util.ArrayList; imp ... -
按照指定编码读取配置文件
2012-12-13 10:17 895BufferedReader reader = new Buf ... -
java读取系统编码
2012-12-13 09:45 896public static void main(String[ ... -
Axis2和现有项目的集成
2011-08-11 10:08 1398axis2和现有项目集成 1.下载axis2-1.5-war. ... -
阻塞队列
2010-09-03 08:54 1226ArrayBlockingQueue为阻塞队列,加入和取出元素 ... -
axis2和JDK1.5开发(文件传输服务)详解二(图解)
2010-06-28 16:36 22925.生成webservice服务端代 ... -
产生随机字符串
2010-05-05 17:13 1061import java.util.Random; p ... -
常用IO操作
2009-09-22 13:22 1305例子:写文件,在文件末尾追加文字并且指定输出文件内容字符编码为 ... -
FileChannel锁定文件
2009-09-22 10:52 2415当FileLock fl = fc.tryLock();执行成 ... -
SOCKET 文件传输
2009-09-21 15:47 4250要求将服务端文件夹A下的文件拷贝到客户端文件A下 删除服务端文 ... -
ZIP 压缩 和解压缩
2009-09-21 15:40 1125package com.socket.zip.util; ... -
Oracle number类型查询精度丢失问题
2009-08-21 16:00 6792一、需求中要求查到一个字段的值然后保持小数点后2位 ... -
Oracle number类型数据取出来后四舍五入到小数点后2位
2009-08-19 10:46 8128package com.wlh.test; impo ... -
将汉字编码为unicode
2009-07-28 10:26 888package test; import java. ... -
验证码
2009-07-05 17:29 1283验证servlet: package edu.yale. ... -
java.util.Date对象和String对象转换 SimpleDateFormat
2009-06-30 15:35 3067import java.text.ParseExcept ... -
进制转换
2009-06-18 12:48 115716进制和字符串之间转换--- import java ... -
bat 命令学习
2009-06-01 23:59 11311.Echo 命令 打开回显或关闭请求回显功能,或显示消 ...
相关推荐
Socket高级编程是网络编程的重要组成部分,它涉及到计算机网络通信的核心技术。在本实例中,我们将深入探讨如何利用Socket进行高效、稳定的数据交换。Socket编程主要应用于客户端与服务器之间的交互,如网页浏览、...
深入研究这个代码,可以学习到更多关于TCP客户端编程的细节,如错误处理、数据编码解码、多线程并发处理等高级技巧。 总的来说,SOCKET编程之TCP客户端是网络编程的基础,通过学习和实践,开发者能够构建起与服务器...
在计算机网络领域,Socket编程是一种基础且至关重要的技术,它为客户端和服务器端的应用程序提供了进行数据通信的接口。Socket在网络层面上实现了进程间的通信,是互联网应用的基础,广泛应用于各种服务,如HTTP、...
本文将深入探讨基于Visual C++的TCP多线程客户端-服务器结构,并以"vc socket tcp 多线程客户端--服务器结构的例子"为例进行解析。这个例子包含了一个名为"RawSocketServerExample"的文件,很可能是实现此架构的源...
Socket编程是计算机网络通信中的基础技术,主要用于实现进程间的网络通信。...在深入学习中,你还可以了解UDP协议、SSL/TLS加密通信、多线程/异步编程等高级主题。希望这个入门教程能帮助你开启Socket编程之旅!
总的来说,"C#+SOCKET实例(含有客户端和服务器端)源码"为我们提供了一个学习网络编程的实用案例,通过分析和运行这两个项目,开发者可以深入理解C#中的Socket通信,以及如何构建简单的客户端-服务器应用。...
在Python编程中,Socket库是用于网络通信的基本工具,它允许程序作为服务器或客户端通过网络交换数据。在本文中,我们将深入探讨如何使用Python的socketserver模块实现服务器与多个客户端的多线程连接。 首先,我们...
Socket网络编程是计算机科学中一个重要的领域,主要涉及在不同设备间通过网络进行通信的技术。...掌握好Socket编程,不仅可以提升开发能力,也是向网络工程师、系统架构师等高级职位迈进的重要一步。
Socket网络编程是计算机科学中用于实现网络通信的一种接口,它允许程序通过Internet协议进行数据交换。...同时,掌握Socket编程也能为学习更高级的网络编程概念,如Web服务、分布式系统等奠定基础。
在本文中,我们将深入探讨如何使用C#进行Socket编程,特别是在构建一个简单的游戏环境中,涉及到一个服务器和多个客户端的交互。Socket编程是网络通信的基础,它允许程序通过网络发送和接收数据。C#语言提供了丰富的...
本文将深入探讨"TCP[1].UDP高级编程"这一主题,旨在帮助开发者掌握这两种传输层协议的高级用法,以及如何在实际项目中利用socket进行编程。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠的...
综上所述,本项目提供了一个高级的C# Socket通信框架,它优化了网络通信的各个环节,包括客户端和服务端的封装、多连接管理、多线程处理、队列策略以及大数据传输的拆分和重组。这样的框架对于开发高性能、高并发的...
为了提高效率和安全性,开发者还需要关注Socket编程中的超时设置、缓冲区大小、错误重试策略以及安全套接层(SSL/TLS)加密等高级特性。在处理大量并发连接时,还可以考虑使用NIO(Non-blocking I/O)或者Netty这样...
在实际开发中,为了简化Socket编程,可以使用第三方库如Netty、Grizzly等,它们提供了更高级的API和功能,如NIO(非阻塞I/O)、线程池管理等,有助于提高性能和可维护性。 总的来说,Socket编程是构建网络应用程序...
在实际开发中,为了提高代码的可读性和复用性,通常会封装成类库或服务,例如创建Server类和Client类,将Socket操作封装在类的方法中,同时考虑异常处理、并发连接支持等高级特性。 总的来说,掌握C#中的TCP Socket...
在本“Socket编程(中间件)Linux服务器Windows客户端课程设计”中,我们将深入探讨如何构建一个跨平台的网络应用,即在Linux服务器上运行服务端程序,而Windows客户端则负责与其交互。 **一、Socket编程基础** ...
【Linux网络通信高级编程Socket】章节主要探讨了在Linux环境下如何进行高级的网络通信编程,特别是使用Socket进行TCP/IP通信。Socket是网络编程的核心概念,它代表了一个通信端点,结合IP地址和端口号,用于标识网络...
首先,理解并实现服务器端的Socket编程,然后编写客户端代码,测试连接与通信功能。 **9. 遇到的问题与解决方案** 常见问题可能包括连接失败、数据传输错误等。检查网络连接、端口号是否冲突、Socket操作顺序是否...
Socket客户端在IT行业中是网络编程的一个重要组成部分,主要用于实现不同计算机之间的通信。Socket,也称为套接字,是操作系统提供的一种进程间通信机制,尤其在网络环境中,它为应用程序提供了发送和接收数据的能力...
Java Socket 是一种基于TCP/IP协议的应用层编程接口,用于实现客户端和服务器之间的通信。在Java中,Socket提供了双向通信通道,允许数据在网络中双向传输。本文将深入探讨如何使用Java Socket实现多客户端与服务器...