Coder Social home page Coder Social logo

Comments (2)

CodeSpartan avatar CodeSpartan commented on July 18, 2024 1

For SO_REUSEADDR, simply add Socket->SetReuseAddr(); above line 390 in TcpSocketConnection.cpp. Looks like you always need it, so it's easier to just add one line than to expose it. As far as I know, it's a very rarely needed feature. I'd accept a pull request, if it's something you're going to expose and want to contribute.

As for the keep alive options, it seems UE4 doesn't set it in engine, so there's nothing to expose, unfortunately.
If you need it, I recommend looking at how FSocketBSD::SetReuseAddr is implemented in Engine\Source\Runtime\Sockets\Private\BSDSockets\SocketsBSD.cpp. You can set SO_KEEPALIVE through setsockopt just like they're setting a bunch of options, you'll just have to modify the engine.

That being said, if you don't want to modify the engine, you can always build a fake "keep alive" mechanism on top of the existing plugin. Just send a byte from the server once a minute and send back a response byte from the client. It's far from an elegant solution, but it'd do the job.

from ue4tcpsocketplugin.

seclorum avatar seclorum commented on July 18, 2024

Thanks for the response - much appreciated hearing your thoughts on this issue.

Actually, we DONT always need SO_REUSEADDR - sure, for games and so on, its nice to have, since it reduces re-connection lag - but for none-game style applications, its more favourable to be able to set this option according to design, rather than assumption. We are using TCP Socket Server in an industrial application with the UE, and would definitely need to turn this off/on according to app needs.

I will look at making a pull request, but I wanted to coordinate the feature idea with you first.

from ue4tcpsocketplugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.