[问题] Socket传值请益

楼主: daniel098962 (阿河)   2018-02-06 23:10:57
安安各位大大好
小弟最近刚接触Socket
想利用Socket再App上能够与一台机器做连线
而这台机器是传正确值给它 它就能够根据讯息回传值回来
因此貌似是不需要server端的程式码(自己也不太确定)
而最近有透过程式大概确定有连线成功
但现在卡在我该怎么传正确的值给它了
正确的值会像以下的图
https://imgur.com/TQFDlIx.jpg
现在问题就是
我该怎么像图片那样
一次是传五个byte的值啊
还是得要分五次?
但分五次server端不就会误以为每次只传一个数值吗
真的不知道这边该怎么解决
抱歉小弟新手
如果解答很简单还望各位大大不要生气~
如有需要程式码 因专案不在身边
恐怕要等明天后再贴上
在此补上程式码网址
https://www.codepile.net/pile/X4KGPe4Q
谢谢各位观看与解惑
作者: omidofor (妈妈咪呀)   2018-02-08 12:31:00
你的问题在于不了解Java基础型别代表的意义,以及不知道类别、方法上面的关键字代表什么意思。建议你上网查资料或是找本书补一下基础的知识,不然这边讲一步动一步的方式对你完全没有帮助。最惨的是写出一个看似可以但充满臭虫的程式,不了解基础的你会完全无法找出问题所在并修正。
作者: gmoz ( This can't do that. )   2018-02-08 10:27:00
找一下网络上的SOCKET互传字串的范例吧完全看懂是怎么传怎么拿怎么转的之后再回来写
作者: zephyrhymn   2018-02-07 07:51:00
这作业(?)让我想到大学时期的网络概论的作业,用socket来模拟TCP/IP的handshaking 行为怎么说呢...感觉你对Socket和TCP协定完全没概念...你说的分一次或五次都可以 先了解socket的原理你就会理解不过要先了解server端怎么处理资料的 你再根据server的行为去实作client端的程式你这个范例我猜是接受"一组"数列 不确定他怎么处理5个数列的Java来处理的话 你直接去看Java的Socket怎么实作即可你给的条件不明不确的只说要送socket的话去google一下java socket client一堆范例...把out.writeUTF("我是Client");改成下面试试看byte[] bytes = "123".getBytes();out.write(bytes);
作者: ssccg (23)   2018-02-07 14:41:00
你贴的那个图传的就是byte[],为什么你要传int[] ?socket传资料都是以byte为单位,其他资料型态都是转为byteint就是转成4个byte,DataOutputStream的writeInt可直接转真的要传五个int,可以呼叫五次writeInt,资料只会先暂存在buffer里,到buffer满了或呼叫flush才会以封包的形式送出自己依read的回传值取buffer中实际上是回传值的部分你要先检查那个值是否>=0,没有读到时会是-1然后循环的index应该从0开始,< 长度你第一次在黄框就把socket里的东西读掉了,当然红框那边读不到东西,改过之后红框是正常的,然后读掉了当然黄框那边的read就没东西了,read只能读一次不能重复读
作者: y3k (激流を制するは静水)   2018-02-10 12:56:00
如果Server端允许 我比较建议直接用Http....阿 不过作业还是用Socket喔XD

Links booklink

Contact Us: admin [ a t ] ucptt.com