- 浏览: 203184 次
- 性别:
- 来自: 湖南
文章分类
最新评论
1、Socket编程
Socket是什么
Socket是套接字,基于TCP协议的传输支持Socket
开发流程:
服务器监听某个端口
客户端连接服务器的某个端口
通过SocketConnection通信
服务器监听某个端口
javax.microedition.io.ServerSocketConnection
javax.microedition.io.Connector专门负责建立各种连接
open(“socket://:端口”),返回ServerSocketConnection
ServerSocketConnection可以获得服务器IP和端口
如果有客户连上来,可以用ServerSocketConnection.acceptAndOpen()返回SocketConnection
客户端连接服务器端
javax.microedition.io.Connector专门负责建立各种连接
open(“socket://IP地址:端口”),返回SocketConnection
SocketConnection重要方法:
getAddress() :得到客户端地址
setSocketOption: 设置一些参数,一般可以用默认
openDataInputStream/ openInputStream:打开输入流
openDataOutputStream/ openOutputStream:打开输出流
实例:客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程(单聊)
实例:聊天室开发
客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程,服务器运行,多个客户端都能够连接到服务器,当连上时,服务器送给客户端一条信息:欢迎您的到来,客户端能给服务器端发信息,信息显示在服务器端,显示为XXX说:????(多聊)
2、UDP编程
UDP是什么
UDP是数据报,只负责传输信息,并不能保证信息一定会被收到,TCP基于连接,UDP基于报文,具体大家可以参考计算机网络
开发流程:
服务器监听某个端口
客户端连接服务器的某个端口
通过Datagram通信
服务器监听某个端口
javax.microedition.io. UDPDatagramConnection
javax.microedition.io.Connector专门负责建立各种连接
open(“datagram://:端口”),返回UDPDatagramConnection
UDPDatagramConnection可以获得服务器IP和端口
客户端连接服务器端
javax.microedition.io.Connector专门负责建立各种连接
open(“datagram://IP地址:端口”),返回UDPDatagramConnection
UDPDatagramConnection重要方法:
newDatagram()
receive()
send()
实例:
客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程
3、HTTP编程
HTTP是一种可以选用的方法
手机--》J2EE--》服务器--》Http响应--》手机
安装HTTP服务器
安装Tomcat: http://www.apache.org
绑定JDK
测试
重要目录:bin; conf;webapps/root;
修改端口
具体可以参见J2EE资料
连接到HTTP服务器
javax.microedition.io.Connector专门负责建立各种连接
open(“http://IP地址:端口”),返回HttpConnection
HttpConnection重要方法:
int getResponseCode()
String getResponseMessage()
String getHost() / int getPort() / String getProtocol() /String getURL()
String getQuery()
String getRequestMethod()
void setRequestMethod(String method)
openDataInputStream, openInputStream
openDataOutputStream, openOutputStream
实例:
界面上有一个账号框,密码框,输入账号密码,由HTTP服务器进行验证,在数据库中查询看是否含有这个用户.
Socket是什么
Socket是套接字,基于TCP协议的传输支持Socket
开发流程:
服务器监听某个端口
客户端连接服务器的某个端口
通过SocketConnection通信
服务器监听某个端口
javax.microedition.io.ServerSocketConnection
javax.microedition.io.Connector专门负责建立各种连接
open(“socket://:端口”),返回ServerSocketConnection
ServerSocketConnection可以获得服务器IP和端口
如果有客户连上来,可以用ServerSocketConnection.acceptAndOpen()返回SocketConnection
客户端连接服务器端
javax.microedition.io.Connector专门负责建立各种连接
open(“socket://IP地址:端口”),返回SocketConnection
SocketConnection重要方法:
getAddress() :得到客户端地址
setSocketOption: 设置一些参数,一般可以用默认
openDataInputStream/ openInputStream:打开输入流
openDataOutputStream/ openOutputStream:打开输出流
实例:客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程(单聊)
package example; import java.io.DataInputStream; import java.io.DataOutputStream; import javax.microedition.io.Connector; import javax.microedition.io.ServerSocketConnection; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ChatServerMIDlet extends MIDlet implements CommandListener{ private ServerSocketConnection ssc = null; private SocketConnection sc = null; private DataInputStream dis = null; private DataOutputStream dos = null; private TextField tfMsg = new TextField("输入聊天信息","",255,TextField.ANY); private Command cmdSend = new Command("发送",Command.SCREEN,1); private Form frmChat = new Form("聊天界面"); private Display display; protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); display.setCurrent(frmChat); frmChat.addCommand(cmdSend); frmChat.append(tfMsg); frmChat.setCommandListener(this); try{ ssc = (ServerSocketConnection)Connector.open("socket://:9999"); sc = (SocketConnection)ssc.acceptAndOpen(); dis = sc.openDataInputStream(); dos = sc.openDataOutputStream(); new ReceiveThread().start(); }catch(Exception ex){ ex.printStackTrace(); } } public void commandAction(Command c,Displayable d){ if(c==cmdSend){ try{ dos.writeUTF(tfMsg.getString()); }catch(Exception ex){} } } class ReceiveThread extends Thread{ public void run(){ while(true){ try{ String msg = dis.readUTF(); frmChat.append(msg + "\n"); }catch(Exception ex){ex.printStackTrace();} } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } }
package example; import java.io.DataInputStream; import java.io.DataOutputStream; import javax.microedition.io.Connector; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import example.ChatServerMIDlet.ReceiveThread; public class ChatClientMIDlet extends MIDlet implements CommandListener{ private SocketConnection sc = null; private DataInputStream dis = null; private DataOutputStream dos = null; private TextField tfMsg = new TextField("输入聊天信息","",255,TextField.ANY); private Command cmdSend = new Command("发送",Command.SCREEN,1); private Form frmChat = new Form("聊天界面"); private Display display; protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); display.setCurrent(frmChat); frmChat.addCommand(cmdSend); frmChat.append(tfMsg); frmChat.setCommandListener(this); try{ sc = (SocketConnection)Connector.open("socket://127.0.0.1:9999"); dis = sc.openDataInputStream(); dos = sc.openDataOutputStream(); new ReceiveThread().start(); }catch(Exception ex){ ex.printStackTrace(); } } public void commandAction(Command c,Displayable d){ if(c==cmdSend){ try{ dos.writeUTF(tfMsg.getString()); }catch(Exception ex){} } } class ReceiveThread extends Thread{ public void run(){ while(true){ try{ String msg = dis.readUTF(); frmChat.append(msg + "\n"); }catch(Exception ex){} } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } }
实例:聊天室开发
客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程,服务器运行,多个客户端都能够连接到服务器,当连上时,服务器送给客户端一条信息:欢迎您的到来,客户端能给服务器端发信息,信息显示在服务器端,显示为XXX说:????(多聊)
package example5; import java.io.DataInputStream; import java.io.DataOutputStream; import java.util.Vector; import javax.microedition.io.Connector; import javax.microedition.io.ServerSocketConnection; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ChatServerMIDlet extends MIDlet implements Runnable{ private ServerSocketConnection ssc = null; private SocketConnection sc = null; private Form frm = new Form("聊天纪录"); private Display dis; private Vector v = new Vector(); protected void startApp() throws MIDletStateChangeException { dis = Display.getDisplay(this); dis.setCurrent(frm); try{ ssc = (ServerSocketConnection)Connector.open("socket://:9999"); new Thread(this).start(); }catch(Exception ex){ ex.printStackTrace(); } } public void run(){ while(true){//不断接受客户端连接 try{ sc = (SocketConnection)ssc.acceptAndOpen(); //开一个线程给这个客户端 ChatThread ct = new ChatThread(sc); v.addElement(ct);//将线程添加进集合 ct.start(); }catch(Exception ex){ ex.printStackTrace(); } } } class ChatThread extends Thread{ private SocketConnection sc; private DataInputStream dis; private DataOutputStream dos; private String nickName; public ChatThread(SocketConnection sc){ this.sc = sc; this.nickName = nickName; try{ dis = sc.openDataInputStream(); dos = sc.openDataOutputStream(); //读取昵称 nickName = dis.readUTF(); frm.append(nickName); }catch(Exception ex){ ex.printStackTrace(); } } public void run(){//负责读取相应SocketConnection的信息 while(true){ try{ String str = dis.readUTF(); //将该信息发送给所有客户端 //访问集合中的所有线程 for(int i=0;i<v.size();i++){ ChatThread ct = (ChatThread)v.elementAt(i); ct.dos.writeUTF(nickName + "说:" + str); } }catch(Exception ex){ ex.printStackTrace(); } } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { } }
package example5; import java.io.DataInputStream; import java.io.DataOutputStream; import javax.microedition.io.Connector; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ChatClientMIDlet extends MIDlet implements CommandListener{ private SocketConnection sc = null; private DataInputStream dis = null; private DataOutputStream dos = null; private TextField tfMsg = new TextField("输入聊天信息","",255,TextField.ANY); private Command cmdSend = new Command("发送",Command.SCREEN,1); private Form frmChat = new Form("聊天界面"); private Display display; private TextField tfNickName = new TextField("输入昵称","",10,TextField.ANY); private Command cmdLogin = new Command("登陆到服务器",Command.SCREEN,1); protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); display.setCurrent(frmChat); frmChat.addCommand(cmdLogin); frmChat.append(tfNickName); frmChat.setCommandListener(this); } public void commandAction(Command c,Displayable d){ if(c==cmdSend){ try{ dos.writeUTF(tfMsg.getString()); }catch(Exception ex){} } else if(c==cmdLogin){ try{ frmChat.removeCommand(cmdLogin); frmChat.addCommand(cmdSend); frmChat.append(tfMsg);//添加发送聊天信息的文本框 new ChatThread().start(); }catch(Exception ex){ ex.printStackTrace(); } } } class ChatThread extends Thread{ public void run(){ try{ sc = (SocketConnection)Connector.open("socket://127.0.0.1:9999"); dis = sc.openDataInputStream(); dos = sc.openDataOutputStream(); dos.writeUTF(tfNickName.getString());//发送昵称 this.start(); }catch(Exception ex){ ex.printStackTrace(); } while(true){ try{ String msg = dis.readUTF(); frmChat.append(msg + "\n"); }catch(Exception ex){} } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } }
2、UDP编程
UDP是什么
UDP是数据报,只负责传输信息,并不能保证信息一定会被收到,TCP基于连接,UDP基于报文,具体大家可以参考计算机网络
开发流程:
服务器监听某个端口
客户端连接服务器的某个端口
通过Datagram通信
服务器监听某个端口
javax.microedition.io. UDPDatagramConnection
javax.microedition.io.Connector专门负责建立各种连接
open(“datagram://:端口”),返回UDPDatagramConnection
UDPDatagramConnection可以获得服务器IP和端口
客户端连接服务器端
javax.microedition.io.Connector专门负责建立各种连接
open(“datagram://IP地址:端口”),返回UDPDatagramConnection
UDPDatagramConnection重要方法:
newDatagram()
receive()
send()
实例:
客户端和服务器端连接,当客户端连上之后,能够和服务器端聊天.两端都有一个文本框输入聊天信息,点击“发送”,能够在另一端收取之后显示。注意,一切都是自动的,所以要用到多线程
package example; import java.util.Vector; import javax.microedition.io.Connector; import javax.microedition.io.Datagram; import javax.microedition.io.UDPDatagramConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ChatServerMIDlet extends MIDlet implements CommandListener,Runnable{ private TextField tfMsg = new TextField("输入聊天信息","",255,TextField.ANY); private Command cmdSend = new Command("发送",Command.SCREEN,1); private Form frmChat = new Form("聊天界面"); private Display display; private UDPDatagramConnection udc = null; private final int MAX = 255; private String address; protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); display.setCurrent(frmChat); frmChat.addCommand(cmdSend); frmChat.append(tfMsg); frmChat.setCommandListener(this); try{ udc = (UDPDatagramConnection)Connector.open("datagram://:9999"); new Thread(this).start(); }catch(Exception ex){ ex.printStackTrace(); } } public void commandAction(Command c,Displayable d){ if(c==cmdSend){//发送 String msg = tfMsg.getString(); try{ Datagram dg = udc.newDatagram(msg.getBytes(), msg.getBytes().length); dg.setAddress(address); udc.send(dg); }catch(Exception ex){ ex.printStackTrace(); } } } public void run(){ while(true){ try{ Datagram dg = udc.newDatagram(MAX); udc.receive(dg); address = dg.getAddress(); String msg = new String(dg.getData(),0,dg.getLength()); frmChat.append(msg + "\n"); }catch(Exception ex){ ex.printStackTrace(); } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } }
package example; import javax.microedition.io.Connector; import javax.microedition.io.Datagram; import javax.microedition.io.UDPDatagramConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class ChatClientMIDlet extends MIDlet implements CommandListener,Runnable{ private TextField tfMsg = new TextField("输入聊天信息","",255,TextField.ANY); private Command cmdSend = new Command("发送",Command.SCREEN,1); private Form frmChat = new Form("聊天界面"); private Display display; private UDPDatagramConnection udc = null; private final int MAX = 255; protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); display.setCurrent(frmChat); frmChat.addCommand(cmdSend); frmChat.append(tfMsg); frmChat.setCommandListener(this); try{ udc = (UDPDatagramConnection)Connector.open("datagram://127.0.0.1:9999"); new Thread(this).start(); }catch(Exception ex){ ex.printStackTrace(); } } public void commandAction(Command c,Displayable d){ if(c==cmdSend){//发送 String msg = tfMsg.getString(); try{ Datagram dg = udc.newDatagram(msg.getBytes(), msg.getBytes().length); udc.send(dg); }catch(Exception ex){ ex.printStackTrace(); } } } public void run(){ while(true){ try{ Datagram dg = udc.newDatagram(MAX); udc.receive(dg); String msg = new String(dg.getData(),0,dg.getLength()); frmChat.append(msg + "\n"); }catch(Exception ex){ ex.printStackTrace(); } } } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub } protected void pauseApp() { // TODO Auto-generated method stub } }
3、HTTP编程
HTTP是一种可以选用的方法
手机--》J2EE--》服务器--》Http响应--》手机
安装HTTP服务器
安装Tomcat: http://www.apache.org
绑定JDK
测试
重要目录:bin; conf;webapps/root;
修改端口
具体可以参见J2EE资料
连接到HTTP服务器
javax.microedition.io.Connector专门负责建立各种连接
open(“http://IP地址:端口”),返回HttpConnection
HttpConnection重要方法:
int getResponseCode()
String getResponseMessage()
String getHost() / int getPort() / String getProtocol() /String getURL()
String getQuery()
String getRequestMethod()
void setRequestMethod(String method)
openDataInputStream, openInputStream
openDataOutputStream, openOutputStream
实例:
界面上有一个账号框,密码框,输入账号密码,由HTTP服务器进行验证,在数据库中查询看是否含有这个用户.
package com.cn; import java.io.DataInputStream; import java.io.IOException; import javax.microedition.io.Connector; import javax.microedition.io.HttpConnection; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class HttpServer extends MIDlet implements CommandListener { private Display dis; private Form fr = new Form("登录"); private TextField tname = new TextField("账号:","",255,TextField.ANY); private TextField tpass = new TextField("密码:", "", 255, TextField.PASSWORD); private Command cmdSend = new Command("发送", Command.SCREEN, 0); public HttpServer() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { dis = Display.getDisplay(this); dis.setCurrent(fr); fr.addCommand(cmdSend); fr.append(tname); fr.append(tpass); fr.setCommandListener(this); } public void commandAction(Command c, Displayable d) { if(c == cmdSend){ new Thread(new Runnable() { public void run() { try { HttpConnection hc = (HttpConnection) Connector.open("http://127.0.0.1/index.php?name="+ tname.getString()+"&pass="+tpass.getString()); DataInputStream din = hc.openDataInputStream(); byte[] b =new byte[(int)hc.getLength()]; din.read(b); fr.append(new String(b)); } catch (IOException e) { e.printStackTrace(); } } }).start(); } } }
<?php $name = $_GET['name']; $pass = $_GET['pass']; if($name == "ABC" && $pass ==123) { echo $name."登录成功!"; }else{ echo $name."登录失败!"; } ?>
- J2me源代码.rar (1.1 MB)
- 下载次数: 2
发表评论
-
J2ME代码优化
2011-01-17 10:09 909为什么要优化 CPU不快:10-400MHz 内存有限 ... -
GameAPI
2011-01-17 10:06 1683游戏画布,图层和游戏精灵 简介 javax.microed ... -
MSRMS编程
2011-01-13 08:35 983基础知识 持久化存储的 ... -
画布开发
2011-01-12 13:48 1205CanvasCanvas绘图 画布属于低级界面 Canva ... -
高级开发
2011-01-07 14:08 857高级开发 异常处理 异常的出现 程序运行时由于一些不可预知的 ... -
高级界面开发
2011-01-06 08:33 1010高级界面开发 1:基本界 ... -
体系介绍和环境配置
2010-12-20 14:16 807J2ME简介 Three Java Platforms ...
相关推荐
《Java网络编程第三版》是Java开发者深入理解网络编程的重要参考资料。这本书主要涵盖了Java平台上的网络应用程序开发,从基础概念到高级技术,为读者提供了一套全面的学习路径。以下是本书中涉及的一些关键知识点:...
Windows 网络编程 概述 Windows 网络编程是指在 Windows 操作系统平台上进行网络编程的技术,涉及到 Windows Socket、网络协议、网络应用程序的开发等方面。 Windows 网络编程的主要目的是实现高性能的网络应用...
扫描版 超清百度网盘资源!!! 为初学者准备的网络编程! 韩国TCP/IP经典教程!... 本书针对网络编程初学者,面向具备C语言基础的套接字网络编程学习者,适合所有希望学习Linux和Windows网络编程的人。
C++网络编程是计算机科学中的一个重要领域,它允许开发者创建能够通过网络进行通信的应用程序。这份"C++网络编程文档"涵盖了这一主题的广泛内容,旨在帮助程序员深入理解并掌握网络编程的基本概念和技术。 首先,...
《C#网络编程实例教程源代码》是一份深入浅出的教学资源,旨在帮助开发者掌握C#语言在网络编程领域的应用。这份教程结合了理论与实践,提供了丰富的源代码示例,让学习者能够通过实际操作来理解和掌握网络编程的核心...
《Linux网络编程教程》这本书是Linux系统中进行网络编程的重要参考资料。它涵盖了广泛的知识点,旨在帮助读者理解和掌握如何在Linux环境下开发网络应用程序。以下是对这些主题的详细阐述: 1. **网络编程基础**:...
《Java网络编程(第四版)》是一本深入探讨Java在互联网环境下的编程技术的经典书籍。本书旨在帮助读者理解和掌握如何利用Java语言进行高效、安全的网络通信。书中内容覆盖了从基本的网络概念到复杂的多线程编程,是...
C++ 网络编程实例 本文档提供了 C++ 网络编程的基础知识,涵盖了网络编程的概述、OSI 七层网络模型、TCP/IP 协议和 C/S 编程模型等内容。 网络编程概述 网络编程是指用户使用 MFC 类库在 VC 编译器中编写程序,以...
linux网络编程 pdf # Linux网络编程基础 Linux网络编程是指在Linux操作系统上开发网络应用程序的过程。它主要涉及到TCP/UDP协议以及select/poll/epoll等多路复用技术。 TCP/UDP协议是网络通信的基础,其中TCP协议...
《Java网络编程(第4版)》是一本深入探讨Java平台上的网络编程技术的专业书籍,适合想要提升Java通讯技术的学者阅读。此书全面覆盖了Java网络编程的基础和高级概念,帮助开发者理解如何利用Java语言构建高效、可靠的...
"Java网络编程实验报告" 本实验报告主要介绍了Java网络编程的基本概念和实现方法,通过设计和实现一个简单的客户端/服务器应用程序,了解Java网络编程的基本原理和实现方法。 知识点1:Java 网络编程基础 Java ...
Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...
《Unix网络编程》是一套由美国著名计算机科学家W. Richard Stevens撰写的经典教材,涵盖了Unix系统下的网络编程各个方面。这套书共分为三卷,每卷都深入探讨了其主题,对于理解和掌握网络编程技术具有极高的参考价值...
《UNIX网络编程》第一卷主要涵盖了网络编程的基本概念、传输层协议TCP和UDP的细节、套接口编程的原理与应用,以及高级网络编程技术。该书是网络编程领域的经典之作,作者是著名的网络编程专家W. Richard Stevens。...
《Visual C++网络编程案例实战》一书深入探讨了如何利用Visual C++及MFC类库进行网络编程,尤其强调了Windows Socket的应用。本书不仅覆盖了理论基础,还提供了丰富的实践案例,帮助读者掌握网络编程的核心技能。 #...
Linux C 网络编程面试题收集 本文总结了 Linux C 网络编程面试题,涵盖了基础知识、网络编程、路由等方面的知识点,旨在帮助读者更好地理解和掌握相关知识。 一、基础知识 1. 对于程序 `func(char *str){printf(...
这本书是关于c#网络编程的,关于c#入门的书有很多,但是关于c#网络编程的并不多,很多教材中虽有涉及网络编程但都是泛泛而谈,很多理论概念掺杂在其中,让人很难理解,而这本不同,含有非常多的例子,从简到深,甚至...
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,...
《UNIX环境高级编程》与《UNIX网络编程卷1:协议》是两本深入解析UNIX系统编程的经典著作。在深入理解这些书籍的知识点之前,我们先要了解UNIX系统的基础概念。 UNIX是一个多用户、多任务的操作系统,其设计哲学...
全书分为10章,第1章介绍网络编程的基本概念及模式,第2章介绍套接字网络编程基础,第3章介绍Windows环境的WinSock编程基础,第4章介绍MFC编程,第5章介绍MFC WinSock类的编程,第6章介绍WinInet编程,第7章介绍...