c# - Socket program for hololens/unity app -
i developing app in unity hololens need connect remote server. have written tcp based program based on info , examples available online.
using system; using system.collections; using system.collections.generic; using unityengine; using unityengine.ui; using unityengine.vr.wsa.input; // used uwp sockets using windows.networking; using windows.networking.sockets; using windows.storage.streams; using system.text; using system.net; using system.net.sockets; using system.threading.tasks; public class server_script: monobehaviour { textmesh textobject; string hostip = "192.168.1.1"; string serverport = "8000"; string data; socket w_sock; streamsocket h_sock; streamsocketlistener h_socklist; hostname serverhost; datareader reader; datawriter writer; string str_val; stringbuilder strbuilder; bool isconnected = false; // use initialization void start () { serverhost = new hostname(hostip); task.run(async () => { await connectasync(serverhost, serverport); }); task.run(async () => { await readasync(); }); } private async task connectasync(object host, object port) { h_sock = new streamsocket(); h_sock.control.nodelay = false; try { await h_sock.connectasync(serverhost, serverport.tostring()); isconnected = true; str_val = "connected"; await writeasync(str_val); await readasync(); textobject.text = str_val; } catch { textobject.text = "error: connection not found"; } } private async task readasync() { if (!isconnected) { return; } using (reader = new datareader(h_sock.inputstream)) { strbuilder = new stringbuilder(); reader.inputstreamoptions = inputstreamoptions.partial; reader.unicodeencoding = windows.storage.streams.unicodeencoding.utf8; reader.byteorder = byteorder.littleendian; var count = await reader.loadasync(1024); data = reader.readstring(1024); if (count > 0) { strbuilder.append(reader.readstring(count)); reader.detachstream(); } } } private async task writeasync(string textobj) { writer = new datawriter(h_sock.outputstream); writer.writebytes(encoding.utf8.getbytes(textobj)); await writer.storeasync(); writer.detachstream(); } } problem when running app async task connectasync never gets called task.run(async () => { await connectasync(serverhost, serverport); });
same read , write functions :
task.run(async () => { await readasync(); }); task.run(async () => { await writeasync(str_val); });
not sure wrong in here , if kindly tell me why these lines not getting executed ?
Comments
Post a Comment