हैलो मैं कुछ रूबी में सॉकेट के साथ गड़बड़ कर रहा हूं और कुछ उदाहरण कोड में आया हूं कि मैंने संशोधित करने और तोड़ने की कोशिश की। मैं जानना चाहता हूं कि यह क्यों टूटा हुआ है।सॉकेट.रेसीवी काम करता है लेकिन नहीं मिलता या पढ़ता है?
सर्वर:
require "socket"
dts = TCPServer.new('127.0.0.1', 20000)
loop do
Thread.start(dts.accept) do |s|
print(s, " is accepted\n")
s.write(Time.now)
print(s, " is gone\n")
s.close
end
end
ग्राहक है कि काम करता है:
require 'socket'
streamSock = TCPSocket.new("127.0.0.1", 20000)
streamSock.print("Hello\n")
str = streamSock.recv(100)
print str
streamSock.close
क्लाइंट कि टूट गया है
require 'socket'
streamSock = TCPSocket.new("127.0.0.1", 20000)
streamSock.print("Hello\n")
str=streamSock.read #this line modified
print str
streamSock.close
मुझे पता है कि streamSock.print
अनावश्यक (और साथ ही नामकरण योजना से किया जा रहा है गैर रूबी) लेकिन मुझे समझ में नहीं आता क्यों read
काम नहीं करता है जबकि recv
करता है, यह क्यों है?
यदि किसी ने टूटा हुआ उदाहरण में पकड़ा तो मेरे पास एक अलग आईपी पता था। उस पर ध्यान न दें, जब मैं कॉपी-पेस्टिंग – Earlz
इस संबंधित प्रश्न पर एक नज़र डालें, तो मैं इसे बदलना भूल गया: http://stackoverflow.com/questions/1147852/ruby-tcpsocket-write-doesnt-work-but-puts-does –
दोनों आपके ग्राहक मेरे लिए ठीक काम करते हैं। मैं ओएस एक्स हिम तेंदुए पर हूँ। – Hongli