网络编程用什么语言写的,就是像tcpudp协议都是用什么写出来的?

网络编程用什么语言写的,就是像tcpudp协议都是用什么写出来的?,第1张

每一种编程语言都有socketAPI,所以每种语言都能用于网络编程。高并发的Server是用C写的。UDPTCP是四层协议,和编程语言并没有关系,但协议结构都是以C为蓝本设计的,所以用C的struct就可以很方便的组装报文。二进制协议用C开发是最方便的。

如果你的socket协议族是AF_INET,然后类型是SOCK_STREAM,那么是通过TCP协议进行通信的,

如果是SOCK_DGRAM,那么是UDP通信的,无论TCP还是UDP,都会带有IP 地址头。

如果是都在本机,有可能通过127001这个回环地址进行通信,回环地址和你的网卡不是一个设备,可能你抓错了设备,所以抓不到包,你可以尝试抓一下loop back/本地回环,这样名字的那个设备。

如果你是AF_LOCAL/AF_UNIX,那么它是通过sock文件进行通信的,这个抓不到。

1、要实现网络编程,首先得了解网络编程的原理。

大部分网络编程底层都是通过TCP/IP或者UDP协议进行通讯,不管是TCP还是UDP通讯,都是通过调用socket实现的。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

Socket通讯分为两部分:服务器端和客户端,服务器端监听客户端的连接,连接上之后,实现数据通讯,流程

2、用C语言调用Socket实现通讯

服务器端示例代码如下:

#include

#include

#include

#include

#include

#include

#include

#include

#definePORT1500//端口号

#defineBACKLOG5/最大监听数/

intmain(){

intsockfd,new_fd;/socket句柄和建立连接后的句柄/

structsockaddr_inmy_addr;/本方地址信息结构体,下面有具体的属性赋值/

structsockaddr_intheir_addr;/对方地址信息/

intsin_size;

sockfd=socket(AF_INET,SOCK_STREAM,0);//建立socket

if(sockfd==-1){

printf(\"socketfailed:%d

1、可以在client端登入时write(发送)帐号和密码给server端,当server端接受到内容时判断是否是你预设的帐号密码,是则允许下载,否则关闭其socket。

2、是要客户端看到进度条? 这样就要要求在下载文件时server端要先发这个文件的大小给client端,client端就可以通过这个大小和接受到的字节数比较后打印进度条(printf("#");)

文件大小可用int stat(const char restrict path, struct stat restrict buf);函数获取。

现在总结了六种方式:

(1)针对TCP/IP的Socket、ServerSocket

(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有一点与普通互联网应用有所差异的。

(3)针对直接URL的HttpURLConnection。

(4)Google集成了Apache HTTP客户端,可使用HTTP进行网络编程。

(5)使用WebService。Android可以通过开源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice。

(6)直接使用WebView视图组件显示网页。基于WebView

进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

你的代码和你的问题根本就不是一码事啊,你的问题是写的UDP程序会死,可实际上你写的TCP,Socket s = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp),明明建立的是TCP的socket,另外UDP是不需要accept的,只需要recv就行。TCP首先要recv,再accept。你这个代码完全是错误的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/12186830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存