尊旭网
当前位置: 尊旭网 > 知识 >

c socket

时间:2024-10-01 02:50:08 编辑:阿旭

JAVA Socket编程和C++Socket编程有什么不同

Socket
是winsock里的原始套接字开发接口API,c++/java
他们是开发语言,而
socket
是一种通讯标准简称。
首先,2者提供的接口不同(主要是封装形式不同),java
本身不带socket通讯底层实现的,而是通过调用系统底层的winsock
API
进行的二次封装,而c/c++
的socket可以理解为
更接近
系统层面的winsock,所以c/c++
的socket
可以提供
更多的底层扩展与控制。

其次,从语言上讲,用JAVA发开出来的socket程序
可以在任何支持JAVA虚拟机上运行,不用修改任何代码。而
C/c++
要根据系统特性进行适当的修改。


c中的socket通信问题

首先要说的是老师叫你们写的这个通讯设计很有实际应用的价值,但是老师叫你们做的毕竟只是个模型流程而已,而不是真正要你们写一个能运行的支付平台,就算你们肯这么做,能这么做,银行也不会同意的。所以这只是个作业,只是个模型,不要把它复杂化,最主要是模型要设计正确,思路要清晰,特别是流程和结构上。
如果这个让我做,我会这么做:
1 这个模型应用是三方的:第一方,客户,也就是要到电商那里买东西的用户。第二方,电商交易平台,也就是商家。第三方:银行。你问的是C中socket通信问题,所以应该是C/S架构的程序,程序中有2个客户端,客户和商家,有2个服务器端,商家和银行,这里的商家既作为客户端,也作为服务器,用户买东西连接到商家的服务器上,提交信息后,商家的服务器端再连接到银行的服务器端上验证银行卡信息。
2 题目设计:1 绑定银行卡:客户连接到商家的服务器后可以自己注册账号,注册账号后可以绑定不同的银行卡,这就相当于在一个账号下有多条绑定记录是一样的。
2 网上支付:很简单,商家的服务器向银行服务器提交交易信息,然后验证就行了。

要求1和要求2:商家的服务器端的数据不应该保存用户的银行卡的密码,而只能够保存银行卡的相关信息,比如卡号,卡所属银行,卡的姓名,这几条记录的。当用户提交绑定卡时,需要提交密码,这时,商家应该将所提交卡的信息加密传输给银行服务器,银行服务器进行查询,是否正确,返回正确,则绑定成功,返回错误,则绑定失败。这就是你们老师要求的,由银行查询,而不是由电商查询。在交易的时候也一样,一共多少钱,用什么卡交易,商家只是传递数据给银行服务器,银行服务器返回数据,进行扣款操作,商家服务器得到信息再传给用户客户端。

如果有什么不清楚的可以继续询问,我会帮你解答。


Linux(或C语言)和JAVA下的socket编程有什么异同点

不同:
1.首先2者提供的接口不同,这点很容易区分。
2.java跨平台,写好的程序不用做任何修改就可以放到linux或者windows或者苹果等诸多操作系统上运行,C当然可以,但linux本身提供了socket的
系统调用
,你如果使用的是linux系统调用,那么你的程序只能在linux下运行,这点不难理解。但如果是C的
库函数
,那还是可以跨平台的
3.利用linux系统调用的速度是要快于JAVA提供的SOCKET接口。
相同性我就不说了,你看完我下面的话,你就能理解他们直接的关系了。
从你提出的问题,我觉的你可能对编程不是很了解。
socket是用来实现
进程通信
(主要是网络通信)的目的,但这不是语言能够解决的问题,确切的说语言连什么是进程他都不知道。这么说来SOCKET不是JAVA带的功能,那么JAVA是如何来实现这一功能的呢?JAVA是通过调用系统提供的SOCKET来完成的。
在LINUX里面,JAVA中的SCOKET最终就是通过调用系统提供的系统调用来完成,而系统调用的SOCKET则是操作系统和硬件共同完成的。所以他们共同点是,如果你的
JAVA程序
是在LINUX中运行的,那他们通信的具体过程会完全一样,只不过JAVA会在系统调用前面加上一些它认为必需加的东西或者是它认为能够方便编程人员使用的东西。