java 基础之--传统网络编程
什么是socket ?
socket 是连接运行在网络上的两个程序间的双向通讯端点 服务器将某一套接字绑定到一个特定的端口,并通过这一套接字等待和监听客户端的的连接请求 客户端通过这个端口与服务器进行连接 如果一切正常,服务器接受到了连接的请求,并获得一个新的绑定到不同端口的套接字 服务端与客户通过读写套接字进行通讯
下面的基于Java 传统的tcp/ip 的代码编写,实现了服务器与客户端的通信
服务端代码:
package com.java.baseknowledge.net; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map; public class ServiceSockets { private static HashMap<String,Socket> map = new HashMap<String,Socket>(); public static void main(String[] args) throws Exception { ServerSocket serverSocket =new ServerSocket(9099); while(true) {
//阻塞方法,一旦有客户端与fwq连接,将会获得绑定新的绑定到不同端口到套接字与客户端进行通讯
Socket accept = serverSocket.accept();
TheMap.map.put(accept.getPort()+"", accept);
System.err.println(TheMap.map);
OutputThread run1 =new OutputThread(accept); Thread th1 =new Thread(run1); th1.start(); } } }
/**
* 全局存储连接的socket对象,进行广播java 基础之--传统网络编程的更多相关文章
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- Java基础教程:网络编程
Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个s ...
- java 基础之--nio 网络编程
在传统的Java 网络编程中,对于客户端的每次连接,对于服务器来说,都要创建一个新的线程与客户端进行通讯,这种频繁的线程的创建,对于服务器来说,是一种巨大的损耗,在Java 1.4 引入Java ni ...
- java基础学习总结——网络编程
一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程.
- Java 基础高级2 网络编程
1.协议的概念:通信双方事先约定好的通信规则 2七层网络通信协议:应用成,表示层,会话层,传输层,网络层,数据链路层 3.TCP/IP协议:点对点通信,三层握手,安全有保证 4.UDP协议;广播协议, ...
- JAVA基础知识之网络编程——-网络通信模型(IO模型)
<Unix网络编程:卷1>中介绍了5中I/O模型,JAVA作为运行在宿主机上的程序,底层也遵循这5中I/O模型规则.这5中I/O模型分别是: 阻塞式IO 非阻塞式IO I/O复用 信号驱动 ...
- 【java基础学习】网络编程
网络编程 InetAddress tcp udp
- 【Java基础总结】网络编程
网络编程 InetAddress tcp udp
- JAVA基础知识之网络编程——-使用Proxy创建连接
在前面的HTTP网络通信的例子中,使用了URLConnection conn = url.openConnection();连接网络, 如果改用URLConnection conn = url.ope ...
随机推荐
- Servlet基本_セッション属性
1.概念セッション: ユーザーごとの状態を保存する仕組みです.セッションID: アプリケーションサーバから一意の識別子が割り当てられ.これをセッションIDと言う. 2.サーブレットAPIサーブレットA ...
- Grafana+Zabbix使用配置
官方提供的网友分享的图形面板,可以自行选择使用下载--- https://grafana.com/dashboards Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编 ...
- [PHP]PHP自定义遍历目录下所有文件的方法
header('content-type:text/html;charset=utf-8');/** * 方法一:使用readir()遍历目录 */function listDir($dir){ ...
- 4.HTTP入门.md
目录 什么是http协议 http协议:对浏览器客户端 和 服务器端 之间数据传输的格式规范 查看http协议的工具* 使用火狐的firebug插件(右键->firebug->网络) Ht ...
- Structs复习 Action
引入jar包 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- vb的VSFlexGrid控件
多行选中 VSFlexGrid的SelectionMode = flexSelectionListBox,现在可以配合Ctrl进行多行选择 循环取值 用vsflexgrid.SelectedRows ...
- unity 三种注入示例
/* * 演示Unity 注入 * */ using Microsoft.Practices.Unity; using System; namespace Unity.Property.Inject ...
- Monkey测试结果分析【转】
转自[http://www.douban.com/note/257030241/] Monkey测试结果分析 一. 初步分析方法: Monkey测试出现错误后,一般的差错步骤为以下几步: 1. 找到是 ...
- hdu1753-大明A+B-(java大数)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- apache常见的一些配置
<VirtualHost *:80>ServerName www.aliyun.com #域名ServerAlias www.aliyun.com #别名DocumentRoot /dat ...